我的问题是对那些对我们有趣的角色有麻烦的土耳其大学的解释。
可以肯定PHP 5有一个 bug 大写并因此整理它们。
echo mb_strtoupper('土耳其语首都为ğ,i,ı,ş大写','UTF-8');
给出的结果是:“土耳其人的资本为Ğ,我,我,在大人身上”。
但这是错误的。正确的输出应该是“TURKİSHCAPİTALSforĞ,İ,I,ŞİNPERPERCASE”
在我们的语言中,我们在大写字母“İ”和“ı”的大写字母“I”中有“我”。
我猜你看到了问题。
我们应该在PHP中报告这个错误,有人知道吗?请通知,如果你写一个子程序暂时解决这个问题,将不胜感激。谢谢。
答案 0 :(得分:3)
你可以试试这个:
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İSHCAPİTALS为Ğ,İ,I,ŞİNPERPERCASE
答案 1 :(得分:2)
mb_strtoupper
不支持区域设置。要处理这些类型的转换,您可以使用Transliterator
,例如:
echo Transliterator::create("tr-Upper")
->transliterate('Turkish capitals for ğ, i, ı, ş in uppercase');
输出:
TURKİSH CAPİTALS FOR Ğ, İ, I, Ş İN UPPERCASE
答案 2 :(得分:0)
您可以编写自己的函数来执行此操作:
for (Student item : myStudents) {
System.out.println(item.createProgressReport());
public String createProgressReport() {
String myString = getName() + " " + getGrade();