strtolower功能的问题

Sim*_*mon 28 php

我的页面中有一些外语文本,但是当我将其设为小写时,它看起来像这样......


$a = "????? ?????????";
echo $b = strtolower($a);
//returns  ????? ?????????
Run Code Online (Sandbox Code Playgroud)

我已经设定<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你能告诉我为什么吗?提前致谢

Ste*_*tes 58

你尝试过使用mb_strtolower()吗?

  • var_dump(mb_strtolower('ԱԱԱ',mb_detect_encoding('ԱԱԱ'))); // string(6)"աաա"100%正在工作!!!! (8认同)

rek*_*o_t 19

PHP5不兼容UTF-8,因此您仍需要使用mb扩展名.我建议你将mb的内部编码设置为utf-8,然后你可以自由使用它的函数而不必一直指定字符集:

mb_internal_encoding('UTF-8');

...

$b = mb_strtolower($a);
echo $b;
Run Code Online (Sandbox Code Playgroud)


kha*_*dev 9

我从这里找到了这个解决方案

$string = '?';
echo 'Uppercase: '.mb_convert_case($string, MB_CASE_UPPER, "UTF-8").'';
echo 'Lowercase: '.mb_convert_case($string, MB_CASE_LOWER, "UTF-8").'';
echo 'Original: '.$string.'';
Run Code Online (Sandbox Code Playgroud)

适合我(小写)


Kev*_*vin 5

你有没有尝试过

http://www.php.net/manual/en/function.mb-strtolower.php

mb_strtolower()并将编码指定为第二个参数?

该页面上的示例似乎有效.

你也可以尝试:

$str = mb_strtolower($str, mb_detect_encoding($str));
Run Code Online (Sandbox Code Playgroud)