我遇到显示土耳其人物的麻烦,他们在html中以背景中的钻石出现的小问号。
如何使用iconv修复此问题?既然我认为那是最好的选择吧?现在我的页面是utf-8编码。
我需要支持像
这样的字符ı ñ ş
以及能够将它们插入我的数据库。
由于
答案 0 :(得分:8)
首先我试过,utf8编码 - 解码,失败, 将文件格式从ASCII更改为UTF-8, 再次尝试utf编码, 多次更改文件格式并失败。
然后我发现了“iconv”,尝试过但失败了。 使用“setlocale”更改了区域设置。尝试土耳其语,英语和其他类型,失败。
最后我写了这个函数,我很满意输出:)
function transliterateTurkishChars($inputText) {
$search = array('ç', 'Ç', 'ğ', 'Ğ', 'ı', 'İ', 'ö', 'Ö', 'ş', 'Ş', 'ü', 'Ü');
$replace = array('c', 'C', 'g', 'G', 'i', 'I', 'o', 'O', 's', 'S', 'u', 'U');
$outputText=str_replace($search, $replace, $inputText);
return $outputText;
}
$goodText=transliterateTurkishChars($badText);
答案 1 :(得分:6)
使用
解决了这个问题iconv("ISO-8859-1", "UTF-8", $text);
答案 2 :(得分:0)
虽然如果$ text包含一些像“Çınar”这样的土耳其字符,但是除非您的环境设置为在土耳其语语言环境中工作,否则会失败。
如果您需要在php中设置区域设置,如下所示;
setlocale(LC_ALL, 'tr_TR');