以下代码正在创建问题。
var_dump($name);
$name = mb_strtolower($name);
var_dump($name);
输出
string(32) "brazil and technology, São Paulo"
string(32) "brazil and technology, s�o paulo"
有人可以解释为什么我的character字符无效吗?我在这里做错了什么?
mb_detect_encoding($name) says its UTF-8
答案 0 :(得分:8)
mb_strtolower()
有第二个参数来指定编码。如果省略,则使用mb_internal_encoding()的返回值。尝试显式添加该参数。如果您使用的是UTF-8:
$name = mb_strtolower($name, "UTF-8");
如果这没有帮助,请确保在整个过程中的所有步骤中输入数据都是UTF-8,输出也是UTF-8。您可能正在使用IS-8859-1数据,这些数据会因strtolower操作而出现乱码。