作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要获取一个包含单词中所有字符的数组,但是当我执行以下代码时,单词中的字母具有特殊编码,例如 á:
$word = 'withá';
$word_arr = array();
for ($i=0;$i<strlen($word);$i++) {
$word_arr[] = $word[$i];
}
或
$word_arr = str_split($word);
我得到:
array(6) { [0]=> string(1) "w" [1]=> string(1) "i" [2]=> string(1) "t" [3]=> string(1) "h" [4]=> string(1) "Ã" [5]=> string(1) "¡" }
如何获取如下每个字符?
array(5) { [0]=> string(1) "w" [1]=> string(1) "i" [2]=> string(1) "t" [3]=> string(1) "h" [4]=> string(1) "á" }
最佳答案
因为是UTF-8字符串,所以就做
$word = 'withá';
$word = utf8_decode($word);
$word_arr = array();
for ($i=0;$i<strlen($word);$i++) {
$word_arr[] = $word[$i];
}
这样做的原因是,即使它在您的脚本中看起来是正确的,解释器也会将其转换为多字节字符(为什么 mb_split()
也能正常工作)。要将其转换为正确的 UTF-8 格式,您可以使用 mb 函数或仅指定 utf8_decode()
。
关于php - 如何从具有特殊编码的单词中获取每个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13501772/
我是一名优秀的程序员,十分优秀!