修复土耳其字符集问题Html / PHP(iconv?)

时间:2011-02-25 21:33:16

标签: php character-encoding iconv turkish

我遇到显示土耳其人物的麻烦,他们在html中以背景中的钻石出现的小问号。

如何使用iconv修复此问题?既然我认为那是最好的选择吧?现在我的页面是utf-8编码。

我需要支持像

这样的字符

ı ñ ş

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

由于

3 个答案:

答案 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');