【发布时间】:2011-02-25 21:33:16
【问题描述】:
我在显示土耳其字符时遇到问题,它们在 html 中显示为带有菱形背景的小问号。
如何使用 iconv 来解决这个问题?既然我认为那是最好的选择,对吧?现在我的页面是 utf-8 编码的。
我需要支持这样的字符
我 ñ s
以及能够将它们插入到我的数据库中。
谢谢
【问题讨论】:
标签: php character-encoding iconv turkish
我在显示土耳其字符时遇到问题,它们在 html 中显示为带有菱形背景的小问号。
如何使用 iconv 来解决这个问题?既然我认为那是最好的选择,对吧?现在我的页面是 utf-8 编码的。
我需要支持这样的字符
我 ñ s
以及能够将它们插入到我的数据库中。
谢谢
【问题讨论】:
标签: php character-encoding iconv turkish
首先我尝试,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);
【讨论】:
通过使用解决它
iconv("ISO-8859-1", "UTF-8", $text);
【讨论】:
虽然这通常是正确的,但如果 $text 包含一些土耳其字符,如“Çınar”,除非您的环境设置为在土耳其语言环境下工作,否则转换将失败。
如果您可能需要在 php 中设置区域设置,如下所示;
setlocale(LC_ALL, 'tr_TR');
【讨论】: