php - 如何从具有特殊编码的单词中获取每个字符

标签 php encoding character-encoding tokenize

我需要获取一个包含单词中所有字符的数组,但是当我执行以下代码时,单词中的字母具有特殊编码,例如 á:

$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/

相关文章:

c - 在 Swift 3 中读取 TrueType 'cmap' 格式 4 子表

python - 在 Python 中,如何将 8 位二进制数转换为 ASCII 字符?

php - TinyMCE UTF-8 保存到 MySQL 数据库

php - Bootstrap 3 Typeahead Ajax 搜索使用 php mysql 函数

php - 中断 Xdebug 中的属性更改

瑞典语字符的 Python 编码

python - 为什么这种到 utf8 的转换不起作用?

php - MySQL 使用连接进行查询搜索

php - 解码 Google Closure 编译的 JavaScript 堆栈跟踪

python - 在 python 中从 windows-1252 转换为 utf-8