有简单的方法从PHP中的多字节字符串中获取字符?

Luc*_*ssi 5 php string encoding multibyte

这是我的问题:我的语言(葡萄牙语)使用ISO-8859-1字符编码!当我想要访问像'coração'(心脏)这样的字符串中的字符时,我使用:

mb_internal_encoding('ISO-8859-1');
$str = "coração";

$len = mb_strlen($str,'UTF-8');

for($i=0;$i<$len;++$i)
    echo mb_substr($str, $i, 1, 'UTF-8')."<br/>";
Run Code Online (Sandbox Code Playgroud)

这会产生:

c
o
r
a
ç
ã
o

这工作正常...但我的问题是,如果使用mb_substr函数不是快速简单的字符串正常访问!但我想要一个简单的方法来做到这一点....就像在正常的字符串字符访问:echo $ str [$ pos] ....有可能吗?

Ign*_*ams 0

... 有点。如果您使用固定宽度编码(BMP 中的 ISO 8859-*、UCS-2、UTF-32 或 UTF-16),则可以使用固定乘数进行字符访问。不过,您仍然需要对多字节编码进行多次访问。