我有一张带有textarea的表格.用户输入存储在数据库中的文本块.
有时用户会粘贴包含智能引号或emdashes的Word中的文本.这些字符在数据库中显示为:",",","
我应该在输入字符串上调用什么函数将智能引号转换为常规引号,将emdashes转换为常规短划线?
我在PHP工作.
更新:感谢迄今为止所有出色的回复.Joel网站上关于编码的页面非常有用:http://www.joelonsoftware.com/articles/Unicode.html
关于我的环境的一些注释:
MySQL数据库使用UTF-8编码.同样,显示内容的HTML页面通过显式设置元内容类型使用UTF-8(Update :).
在这些页面上,智能引号和emdashes显示为带问号的钻石.
解:
再次感谢您的回复.解决方案有两个方面:
确保将数据库和HTML文件显式设置为使用UTF-8编码.
用htmlspecialchars()
而不是
htmlentities()
.
theraccoonbe.. 15
这听起来像是一个Unicode问题.Joel Spolsky在这个话题上有一个很好的起点:http://www.joelonsoftware.com/articles/Unicode.html
这听起来像是一个Unicode问题.Joel Spolsky在这个话题上有一个很好的起点:http://www.joelonsoftware.com/articles/Unicode.html
mysql数据库使用UTF-8编码.同样,显示内容的html页面使用UTF-8.
HTML的内容可以是UTF-8,是的,但你是否明确地将HTML页面的内容类型(编码)(通过PHP生成?)设置为UTF-8?尝试返回HTML Content-Type
标题"text/html;charset=utf-8"
或向HTML 添加标记:
这样,提交给PHP的数据的内容类型也将是相同的.
我有一个类似的问题,并添加标签为我工作.