Php strtolower使用阿拉伯语字符失败

Php strtolower使用阿拉伯语字符失败,php,Php,我的网站允许用户使用阿拉伯语/英语名称注册 我正在尝试将用户名和姓氏转换为小写 我正在使用这个函数 $first_name = strtolower ( $_POST['first_name'] ); 如果我尝试输入阿拉伯语名称,我会得到这个编码(ùùùùùù§ù) 自己试试看 <? echo 'مصر'; // return مصر echo strtolower('مصر'); // return ø¹ù„ø§ø¡ ?> ?>您不能在UTF-8编码字符串上使用strtol

我的网站允许用户使用阿拉伯语/英语名称注册

我正在尝试将用户名和姓氏转换为小写

我正在使用这个函数

$first_name = strtolower ( $_POST['first_name'] );
如果我尝试输入阿拉伯语名称,我会得到这个编码(ùùùùùù§ù)

自己试试看

<?
echo 'مصر'; // return مصر
echo strtolower('مصر'); // return ø¹ù„ø§ø¡
?>


?>

您不能在UTF-8编码字符串上使用
strtolower
,只能在ISO 8859-1上使用。改用。您还需要指定使用的编码,确保设置正确(可能是
“UTF-8”



关于UTF-8,没有人说什么。你最好说:
strtolower
只适用于ISO 8859-1。@Gumbo:他的输出清楚地表明它是UTF-8字符串。但是,是的,我想你的描述更准确。@事实上,你试过了吗?我得到了同样的结果!我试图在浏览器编码之间切换,我得到的结果如下���,ùùùùùùùôùùôùùùùù。。。我会试着看看问题出在哪里,然后再打电话给你。
<?
echo 'مصر'; // return مصر
echo mb_strtolower('مصر', 'UTF-8'); // return مصر
?>