当前位置: 首页 > 面试题库 >

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

勾喜
2023-03-14
问题内容

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

使用方括号运算符访问UTF-8字符串时,$str[0]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”修饰符,
它支持UTF-8
Unicode。

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


 类似资料:
  • 问题内容: 我的数据库已正确设置为UTF-8,并且正在处理包含日语字符的数据库。如果我从mysql命令行执行SELECT * …,我会正确看到日语字符。当将数据从数据库中拉出并显示在网页上时,我可以正确地看到它。 但是,在phpMyAdmin中查看表数据时,我只会看到垃圾文本。即。 ç§ã日本料ç†ãŒå¥½ããããã㥥œœ¬æ–™ç†ã… 如何获取phpMyAdmin以日语显示字

  • 问题内容: iconv函数有时会给我一个错误: 有没有办法在将数据放入inconv之前检测到utf-8字符串中存在非法字符? 问题答案: 首先,请注意,无法检测文本是否属于特定的不需要的编码。您只能检查字符串在给定编码中是否有效。 您可以使用从PHP 4.3.5 开始在 可用的UTF-8有效性检查。如果给出了无效的字符串,它将返回(没有其他信息): 另一种可能是[ 您可以使用的另一个功能是[ 将参

  • 我有一个从第三方应用程序收到的字符串,我希望在我的Windows界面上使用C#以任何语言正确显示它。 由于编码不正确,我的字符串中有一段在西班牙语中如下所示: AcciÃn 然而它应该看起来像这样: 阿克松 根据这个问题的答案:如何知道C#中的字符串编码,我接收到的编码应该已经在UTF-8中出现了,但它是在编码时读取的。默认值(可能是ANSI?)。 我试图将这个字符串转换成真正的UTF-8,但问题

  • 问题内容: 我想获取给定UTF-8字符串的UCS-2代码点。例如,单词“ hello”应变为类似“ 0068 0065 006C 006C 006F”的名称。请注意,字符可以来自任何语言,包括诸如东亚语言之类的复杂文字。 因此,问题归结为“将给定字符转换为其UCS-2代码点” 但是如何?拜托,由于我非常着急,任何帮助都将不胜感激。 提问者的答覆转录为答案 感谢您的答复,但这需要在PHP v 4或5

  • 问题内容: 如何在Swift中将字符串转换为Unicode(UTF-8)字符串? 在Objective中,我可以这样写: 如何在Swift中做类似的事情? 问题答案: 使用此代码, 希望对您有所帮助

  • 问题内容: 我有这样的 unicode : 我知道这是字符串代表其进行编码 请注意,字符串本身是 如何将其解码为真实字符串? 问题答案: 如果您打印了字符串的输出,那么您似乎有一个 Mojibake ,使用错误的编码对字节数据进行了解码。 首先编码回字节,然后使用正确的编解码器解码。这可能像编码Latin-1一样简单: 但是,这取决于如何应用错误的解码。如果使用Windows代码页(如CP1252