针对 UTF-8 兼容的数据库使用 PHP。这是输入的方式。
- 用户在 textarea 中输入输入
- 用 javascript escape() 编码的文本区域
- 通过 HTTP post 传递
- 用 PHP rawurldecode() 解码
- 使用默认设置通过 HTMLPurifier
- 为 MySQL 转义并存储在数据库中
它以通常的方式出现,我在页面加载时运行 unescape() 。这是为了让人们可以直接从 Word 文档中复制和粘贴,并显示智能引号。
但是 HTMLPurifier 似乎正在破坏非 UTF-8 特殊字符,那些转义()到一个简单的 % 表达式的字符,比如 Ö,它转义到 %D6,而 smartquotes 转义到 %u2024 或其他东西并以这种方式进入数据库。它取出特殊字符和紧随其后的字符。
我需要在这个过程中改变一些东西。也许我需要改变很多事情。
我该怎么做才能不破坏特殊字符?