PHP setlocale不允许像strtolower这样的PHP函数为UTF-8正常工作吗?

时间:2013-02-21 21:50:40

标签: php

我测试了使用 strtolower 的PHP setlocale 功能,用于我的标准 UTF-8 编码和波兰语字母。
不幸的是,我的经历告诉我,那些功能不喜欢UTF-8 在Windows中我根本无法使用它 好吧,事实证明我无法在我的主机服务器Linux cp15.vpsi.pl 2.6.32-220.4.1.el6.x86_64 x86_64上使用它。 我在该系统上使用locale -a命令来发现我必须使用 pl_PL.UTF-8 并且setlocale函数接受它。
好吧,strtolower函数只能重复我输入的波兰语大写字母'字符串不变,发现将波兰语字母转换为小写字母太难了。
pl_PL.iso88592 不会出现此问题 据我所知,UTF-8是最好的编码,尤其是当你使用WordPress时。 UTF-8仅适用于非常复杂的计算机系统吗?!!!

4 个答案:

答案 0 :(得分:1)

来自http://php.net/manual/en/function.strtolower.php

  

strtolower();不适用于波兰字符

     

<?php strtolower("mĄkA"); ?>

     

将返回:mĄka

     

最佳解决方案 - 使用mb_strtolower()

     

<?php mb_strtolower("mĄkA",'UTF-8'); ?>

     

将返回:mąka

答案 1 :(得分:1)

使用mb_strtolower()功能。这将有效。

答案 2 :(得分:0)

mb_功能好。可惜我的php.exe(对于Win7中的cmd.exe - cli)没有这个模块,无法识别这些功能。

答案 3 :(得分:0)

    setlocale(LC_CTYPE, 'pl_PL.UTF-8');
    $str = iconv('utf-8', 'ascii//translit', $str);
    $str = strtolower($str);

请参阅iconv