非标准字符的 PHP 过滤器

标签 php javascript utf-8

我将文本作为用户输入,但文本中某处没有标准字符。

文本被存储到数据库中。一切都在 UTF-8 中并且运行良好,只是它为非标准字符显示奇怪的符号。

如何在 PHP 中过滤这些字符?


我发现带有错误字符的文本“正确”存储在数据库中。当文本将显示在静态 UTF-8 编码的 HTML 页面上时,将显示损坏的字符。但是当通过 AJAX 加载文本时,它崩溃并且加载操作失败。所以我认为这仍然是一个 AJAX 编码问题。

最佳答案

Unicode(和像 UTF-8 这样的编码)包含的字符比大多数操作系统可以显示的多得多,这仅仅是因为典型的用户不需要所有可能的可用字符。

这可能意味着您的一位用户输入了他们系统上有的字符,但您的系统上没有; UTF-8 不关心你能看到什么,只关心它需要存储什么。例如,如果某人有一个匈牙利名字,如 Paul Erdős(请注意 O 上的时髦斜线),则该字符可能无法在所有系统上使用。

因此,正如另一个答案所说,您可能需要追踪这些符号的来源,以查看您的客户是否真的需要显示它们,或者您需要将它们翻译成其他内容。

关于非标准字符的 PHP 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1023784/

相关文章:

php - mysql中两个表的联合结果集排序

Python zlib 输出,如何恢复出 mysql utf-8 表?

python - 如何在允许 utf-8 输入的同时获得交互式 Python 以避免使用 readline?

php - 英镑符号显示为问号 PHP

php - 消除有关 undefined variable 的通知的最佳方法是什么?

php - 对(非对象)中的非对象调用成员函数prepare()

php - Python 没有正确重启 linux 进程

javascript - 单击图像(上一个和下一个)手动浏览 photoswipe 中的图像

javascript - Rails - 当其他用户被分配新客户端时向他们发送警报(无需刷新其页面)

javascript - 为什么我克隆的 HTML5 canvas 元素的内容显示为纯黑色背景?