我在utf-8中有变音字符串,显示确定:
var_dump($content);
它归还给我“höstlanseras”。 但是当我尝试这个时:
for ($i = 0; $i < strlen($content) - 1; $i++) {
var_dump($content[$i]);
}
我有这个:
string(1) "h"
string(1) "o"
string(1) "�"
string(1) "�"
string(1) "s"
string(1) "t"
string(1) " "
string(1) "l"
string(1) "a"
string(1) "n"
string(1) "s"
string(1) "e"
string(1) "r"
string(1) "a"
string(1) "s"
如何将变音符号作为数组元素?
答案 0 :(得分:1)
在UTF-8中,“ö”使用多个字节进行编码
PHP字符串是哑字节数组; PHP根本不知道“字符”等。
使用$str[x]
访问字符串偏移可访问一个特定字节; strlen
以字节为单位报告长度,而不是“字符”。
将所有这些放在一起,结果是您正在访问单个字节而不是字符,而在“ö”的情况下,这会导致输出一半字符/无意义字节。< / p>
答案 1 :(得分:0)