gpt4 book ai didi

php - mb_strtolower 和 utf8 字符串

转载 作者:IT王子 更新时间:2023-10-29 01:05:41 27 4
gpt4 key购买 nike

如您所知,在处理 utf-8 数据时,我们需要使用 mb_strtolower() 而不是 strtolower():

$str = 'برنامه';
echo strtolower($str);
----------------------
output: �����

都去undefined chars了,现在我用mb_strtolower()

$str = 'برنامه';
echo mb_strtolower($str);
----------------------
output: �����

还是一样的结果,现在:

$str = 'برنامه';
echo mb_strtolower($str, mb_detect_encoding($str));
----------------------
output: برنامه

现在它是固定的,所以使用 mb_strtolower 的方法是也有 mb_detect_encoding

现在我的问题是我想用 array_map 做同样的事情:

$results_array = array_map('mb_strtolower', $results_array);

我应该如何在上面的行中使用 mb_detect_encoding

最佳答案

解决方法是告诉mb_strtolower你的字符串编码是什么:

echo mb_strtolower($str, 'UTF-8');

如果您不想每次都提供此参数,请为所有 mb_ 函数设置一次:

mb_internal_encoding('UTF-8');

然后您可以调用任何 mb_ 函数,它会将您的字符串作为 UTF-8 处理:

echo mb_strtolower($str); // works without second parameter now

mb_detect_encoding 碰巧返回 'UTF-8' 因为它检测到它,但它通常是不可靠的,因为从概念上讲不可能可靠地检测任意编码的字符串。 知道您的字符串是用什么编码的,并明确传递此信息。

关于php - mb_strtolower 和 utf8 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13288785/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com