1

我在使用字符时注意到了这个问题¦。对于 3000 个字符的限制,我可以用 3000 个 & 符号填充 textarea。显示字符串长度的 javascript 说 3000,当我发布文本时,php 说它是 3000。如果我尝试 3000¦则 javascript 再次显示 3000,但 php 显示更多,在 5000 中。¦有一个 html 代码¦¦所以我不知道为什么 php 出现问题。为什么是这样?

编辑:PHP 显示每个¦字符串的长度为 2,而其他字符通常为 1。我注意到任何 ASCII 码高于 160 的字符的 php 字符串长度为 2:http ://www.ascii.cl /htmlcodes.htm

4

1 回答 1

2

您可能正在处理多字符 UTF-8 字符。要正确计算这些,假设您的文件实际上是 UTF-8,试试这个:

mb_internal_encoding("UTF-8");
mb_regex_encoding("UTF-8"); // Not actually needed in this case, but add it if you use preg_ functions
echo mb_strlen("¦");

mb_* 函数旨在处理多字节字符。

于 2013-06-07T05:53:20.380 回答