在PHP中引用多字节字符串的最简单方法是什么?

问题描述:

我的问题: 在PHP中很容易引用单个字节串,$single = "abc";例如,在PHP中引用多字节字符串的最简单方法是什么?

echo $single[0]; //"a" 

然而,对于多字节字符串$multi = "äåö",我得到“无稽之谈”,也就是

echo $multi[0]; //? 

我知道人们可以通过编码作为参考的多字节串的各个字母如下:

mb_internal_encoding("UTF-8"); 
echo mb_substr($multi,1,1);//which gives the right answer "å" 

但是有没有更简单的方法来做到这一点? 我特别寻找一种方法,我可以引用多字节字符串与方括号和只有一个参数为单字节的情况。

+1

数组符号版本不是多字节感知的,只是将字符串视为单字节字符数组。子串访问没有多字节感知快捷方式符号。 – 2012-01-31 20:31:24

+0

感谢您的反馈! /William N – BuckyBadger 2012-02-01 21:26:38

不,Unicode支持位于新版本的表格上,但尚未就绪。它会在某个时候到达那里,但还没有。

from the manual

字符串是一系列字符,其中一个字符是相同的一个字节的。这意味着PHP仅支持256个字符的集合,因此不提供本地Unicode支持。

,你可以得到这个最接近的是实现使用__toString()功能和摆弄的很多实施ArrayAccess的对象。不建议在我看来。

+0

感谢您的“内幕消息”! William N. – BuckyBadger 2012-02-01 21:28:17