【发布时间】:2010-04-13 07:43:56
【问题描述】:
我经营一个旨在支持国际数学小组的论坛。我最近将其切换为 unicode 以更好地支持国际字符。在调试此转换时,我发现并非所有 unicode 字符都被视为有效的 XHTML(相关网站似乎是 http://www.w3.org/TR/unicode-xml/)。论坛软件在将帖子呈现给浏览器之前要经过的步骤之一是 XHTML 验证/清理步骤。在那个阶段,它应该删除任何 XHTML 不喜欢的 unicode 字符,这似乎是一个合理的想法。
所以我的问题是:
在 PHP 中是否有标准(或最佳)方法?
(顺便说一下,论坛是用 PHP 编写的。)
我猜故障保护将是一个简单的str_replace(如果这也是最好的,我是否需要做任何额外的事情以确保它与 unicode 一起正常工作?)但这将涉及我必须通过 XHTML DTD(或上面引用的 W3 页面)仔细找出要在 str_replace 的 search 部分列出哪些字符,所以如果这是最好的方法,有人已经这样做了,所以我会偷,会犯错,会抄袭吗?
(顺便说一句,导致问题的字符是 U+000C,即“formfeed”,它(根据 W3 页面)是有效的 HTML 但无效的 XHTML!)
【问题讨论】: