首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在字符串中转换单词智能引号和em破折号?

如何在字符串中转换单词智能引号和em破折号?
EN

Stack Overflow用户
提问于 2008-10-06 19:22:33
回答 13查看 30.9K关注 0票数 25

我有一个带有文本区域的表格。用户输入存储在数据库中的文本块。

偶尔,用户会从包含智能引号或emdashes的Word中粘贴文本。这些字符在数据库中显示为:

我应该在输入字符串上调用什么函数来将智能引号转换为常规引号,并将emdashes转换为常规破折号?

我在PHP工作。

更新:感谢所有的伟大反应到目前为止。Joel网站上关于编码的页面内容非常丰富:http://www.joelonsoftware.com/articles/Unicode.html

关于我的环境的一些注意事项:

MySQL数据库使用UTF-8编码.同样,显示内容的HTML页面通过显式设置元内容类型来使用UTF-8 (Update:)。

在这些页面上,智能引号和emdashes显示为带有问号的菱形。

解决方案:

再次感谢你的回复。解决办法有两方面:

  1. 确保数据库和HTML文件被显式地设置为使用UTF-8编码.
  2. 使用htmlspecialchars()而不是htmlentities()
EN

Stack Overflow用户

发布于 2008-10-06 19:39:49

不幸的是,这是一个非常常见的问题,PHP对字符集的处理非常糟糕,这没有帮助。

我们所做的就是强迫文本通过iconv

代码语言:javascript
运行
复制
// Convert input data to UTF8, ignore any odd (MS Word..) chars
// that don't translate
$input = iconv("ISO-8859-1","UTF-8//IGNORE",$input);

//IGNORE标志意味着任何不能翻译的东西都会被丢弃。

如果附加字符串//忽略,则无法在目标字符集中表示的字符将被静默丢弃。

票数 2
EN
查看全部 13 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/175785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档