我在显示土耳其字符时遇到问题,它们在 html 中显示为带有菱形背景的小问号。
如何使用 iconv 来解决这个问题?既然我认为那是最好的选择,对吧?现在我的页面是 utf-8 编码的。
我需要支持像这样的字符
我ñş
以及能够将它们插入到我的数据库中。
谢谢
我在显示土耳其字符时遇到问题,它们在 html 中显示为带有菱形背景的小问号。
如何使用 iconv 来解决这个问题?既然我认为那是最好的选择,对吧?现在我的页面是 utf-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);
通过使用解决了它
iconv("ISO-8859-1", "UTF-8", $text);
尽管如果 $text 包含一些像“Çınar”这样的土耳其字符,这通常是正确的,除非您的环境设置为在土耳其语言环境下工作,否则转换将失败。
如果您可能需要在 php 中设置语言环境,如下所示;
setlocale(LC_ALL, 'tr_TR');