php - 如何在 PHP 中迭代 UTF-8 字符串?

标签 php utf-8

如何使用索引逐个字符地迭代 UTF-8 字符串?

当您使用括号运算符 $str[0] 访问 UTF-8 字符串时,utf 编码的字符由 2 个或更多元素组成。

例如:

$str = "Kąt";
$str[0] = "K";
$str[1] = "�";
$str[2] = "�";
$str[3] = "t";

但我想要:

$str[0] = "K";
$str[1] = "ą";
$str[2] = "t";

mb_substr 是可能的,但这非常慢,即。

mb_substr($str, 0, 1) = "K"
mb_substr($str, 1, 1) = "ą"
mb_substr($str, 2, 1) = "t"

是否有另一种方法可以在不使用 mb_substr 的情况下逐个字符地对字符串进行交互?

最佳答案

使用preg_split .用"u" modifier它支持 UTF-8 unicode。

$chrArray = preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY);

关于php - 如何在 PHP 中迭代 UTF-8 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3666306/

相关文章:

php - Laravel API 身份验证(护照)隐式授予 token - 401 错误

php - 通过 PHP 更新 MySQL 中的 "order"列的最有效方法是什么

iphone - NSData 到 NString 转换问题

c# - 字节数组中 UTF8 XML 文档中 ASCII 字符串的编码

regex - 如何在 perl regex 替换命令中使用 unicode 字符?

php - mysql 查询到 mysqli 查询

php - 如何使用边框半径调整图像大小?

Java InputStream 读取区域设置相关吗?

javascript - 警告中带有重音符号的错误字符并使用 Phonegap/Cordova 进行确认

php - str_replace() 没有按预期工作