1

我在显示土耳其字符时遇到问题,它们在 html 中显示为带有菱形背景的小问号。

如何使用 iconv 来解决这个问题?既然我认为那是最好的选择,对吧?现在我的页面是 utf-8 编码的。

我需要支持像这样的字符

我ñş

以及能够将它们插入到我的数据库中。

谢谢

4

3 回答 3

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);
于 2012-03-18T12:19:56.637 回答
7

通过使用解决了它

iconv("ISO-8859-1", "UTF-8", $text);
于 2011-02-25T21:38:36.460 回答
0

尽管如果 $text 包含一些像“Çınar”这样的土耳其字符,这通常是正确的,除非您的环境设置为在土耳其语言环境下工作,否则转换将失败。

如果您可能需要在 php 中设置语言环境,如下所示;

setlocale(LC_ALL, 'tr_TR');
于 2012-03-01T12:02:31.417 回答