PHP 的 mb_strtoupper 函数中的土耳其字符错误
Turkish character bug in mb_strtoupper function of PHP
我的问题是对那些对我们有趣的角色有问题的土耳其大学的解释。
肯定 PHP 5 有一个 bug 通过大写并因此整理它们。
echo mb_strtoupper('Turkish capitals for ğ, i, ı, ş in uppercase', 'UTF-8');
给出结果:"TURKISH CAPITALS FOR Ğ, I, I, Ş IN UPPERCASE".
但这是错误的。正确的输出应该是"TURKİSH CAPİTALS FOR Ğ, İ, I, Ş İN UPPERCASE"
我们语言中的问题是 "i" 大写的“İ”和大写的“ı”"I"。
我猜你看出问题所在了。
我们应该向谁报告 PHP 中的这个 bug,有人知道吗?请告知,如果您编写一个子程序来暂时解决这个问题,我们将不胜感激。先谢谢了。
你能试试这个吗:
function pre_up($str){
$str = str_replace('i', 'İ', $str);
$str = str_replace('ı', 'I', $str);
return $str;
}
echo mb_strtoupper(pre_up('Turkish capitals for ğ, i, ı, ş in uppercase'), 'UTF-8');
我不懂土耳其语,对吗?
输出
TURKİSH CAPİTALS FOR Ğ, İ, I, Ş İN UPPERCASE
您可以为此编写自己的函数:
function trkish_upper($str){
$find = array('i', 'ı'); //any turkish chars
$replace = array('İ','I');
$new = str_replace($find,$replace,$str);
return $new;
}
mb_strtoupper
不支持语言环境。为了处理这些类型的转换,您可以使用 Transliterator
,例如:
echo Transliterator::create("tr-Upper")
->transliterate('Turkish capitals for ğ, i, ı, ş in uppercase');
输出:
TURKİSH CAPİTALS FOR Ğ, İ, I, Ş İN UPPERCASE
我的问题是对那些对我们有趣的角色有问题的土耳其大学的解释。
肯定 PHP 5 有一个 bug 通过大写并因此整理它们。
echo mb_strtoupper('Turkish capitals for ğ, i, ı, ş in uppercase', 'UTF-8');
给出结果:"TURKISH CAPITALS FOR Ğ, I, I, Ş IN UPPERCASE".
但这是错误的。正确的输出应该是"TURKİSH CAPİTALS FOR Ğ, İ, I, Ş İN UPPERCASE"
我们语言中的问题是 "i" 大写的“İ”和大写的“ı”"I"。
我猜你看出问题所在了。
我们应该向谁报告 PHP 中的这个 bug,有人知道吗?请告知,如果您编写一个子程序来暂时解决这个问题,我们将不胜感激。先谢谢了。
你能试试这个吗:
function pre_up($str){
$str = str_replace('i', 'İ', $str);
$str = str_replace('ı', 'I', $str);
return $str;
}
echo mb_strtoupper(pre_up('Turkish capitals for ğ, i, ı, ş in uppercase'), 'UTF-8');
我不懂土耳其语,对吗?
输出
TURKİSH CAPİTALS FOR Ğ, İ, I, Ş İN UPPERCASE
您可以为此编写自己的函数:
function trkish_upper($str){
$find = array('i', 'ı'); //any turkish chars
$replace = array('İ','I');
$new = str_replace($find,$replace,$str);
return $new;
}
mb_strtoupper
不支持语言环境。为了处理这些类型的转换,您可以使用 Transliterator
,例如:
echo Transliterator::create("tr-Upper")
->transliterate('Turkish capitals for ğ, i, ı, ş in uppercase');
输出:
TURKİSH CAPİTALS FOR Ğ, İ, I, Ş İN UPPERCASE