我的问题:
在PHP中,很容易引用单字节字符串,例如$single = "abc";
,
echo $single[0]; //"a"
但对于多字节字符串$multi = "äåö"
,我得到“废话”,即
echo $multi[0]; //?
我知道可以通过编码引用多字节字符串的各个字母,如下所示:
mb_internal_encoding("UTF-8");
echo mb_substr($multi,1,1);//which gives the right answer "å"
但是,有没有更简单的方法呢? 我特别想找到一种方法,我可以用方括号引用多字节字符串,只有一个参数用于单字节情况。
答案 0 :(得分:2)
不,新版本的表支持Unicode,但还没有准备好。它可能会在某个时刻到达那里,但现在还没有。
字符串是一系列字符,其中一个字符与一个字节相同。这意味着PHP仅支持256个字符集,因此不提供本机Unicode支持。
你可以得到的最接近的是使用ArrayAccess
函数实现__toString()
实现的对象和大量的摆弄。在我看来不推荐。