我测试了使用 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仅适用于非常复杂的计算机系统吗?!!!
答案 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