【发布时间】:2023-03-20 11:23:01
【问题描述】:
在W3C validator 中验证我网站的 HTML 代码时,我收到以下警告:
Line 157, Column 220: Text run is not in Unicode Normalization Form C.
…i͈̭̋ͥ̂̿̄̋̆ͣv̜̺̋̽͛̉͐̀͌̚e͖̼̱ͣ̓ͫ͆̍̄̍͘-̩̬̰̮̯͇̯͆̌ͨ́͌ṁ̸͖̹͎̱̙̱͟͡i̷̡͌͂͏̘̭̥̯̟n̏͐͌̑̄̃͘͞…
我在 PHP 5.3.x 中开发它,所以我可以使用 Normalizer 类。
所以,为了解决这个问题,我应该在显示用户的任何输入(例如评论)时使用Normalizer::normalize($output),还是应该在将任何用户输入存储到数据库之前使用Normalizer::normalize($input)?
tl;dr:我应该在将用户输入存储到数据库之前还是仅在显示时使用Unicode normalization?
【问题讨论】:
-
您在页面上显示什么样的数据?这似乎更像是验证器的问题,而不是您的数据。
-
用户可以合法发布的 this 之类的内容。这只是一堆看起来很糟糕的带有很多上标和下标的文本。
-
有趣 :) 我确定验证器会因某种字符组合而中断...但我也发现了这个线程 comments.gmane.org/gmane.org.w3c.validator/13243
-
感谢链接人,我不知道这是一个如此复杂的主题。我想我会正常化一切以防万一。只要验证器高兴,导航器也应该如此
-
是的,这个话题没完没了... :-)
标签: php unicode normalization web-standards unicode-normalization