Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在多字节字符串php中访问字符_Php - Fatal编程技术网

在多字节字符串php中访问字符

在多字节字符串php中访问字符,php,Php,我有mbstring.func_重载=7并使用UTF-8。一切正常,但这不是: $str = "ãçéíõ"; echo $str[0]; 它在浏览器中打印一个问号 相反,这可以正常工作: echo substr($str,0,1); 有人知道为什么吗?用$str[0]索引字符串从中提取字节。无论mbstring.func\u重载是否已设置,它都无法识别编码。即使不方便,也需要使用substr 索引到字符串是一个严重的编码错误,除非该字符串表示一个blob,而且您刚刚找到了原因。是的,这是因

我有mbstring.func_重载=7并使用UTF-8。一切正常,但这不是:

$str = "ãçéíõ";
echo $str[0];
它在浏览器中打印一个问号

相反,这可以正常工作:

echo substr($str,0,1);

有人知道为什么吗?

$str[0]索引字符串
从中提取字节。无论
mbstring.func\u重载
是否已设置,它都无法识别编码。即使不方便,也需要使用
substr


索引到字符串是一个严重的编码错误,除非该字符串表示一个blob,而且您刚刚找到了原因。

是的,这是因为您使用的是多字节字符串,其中单个字符由一到四个字节表示。如果只选择一个字节(如
$str[0]
),则可能只选择了半个字符。
substr()