开发者

Fix Turkish Charset Issue Html / PHP (iconv?)

开发者 https://www.devze.com 2023-02-14 01:08 出处:网络
i\'m having troubles displaying turkish 开发者_运维技巧characters, they are appearing as the little question mark with the diamond in the background in html.

i'm having troubles displaying turkish 开发者_运维技巧characters, they are appearing as the little question mark with the diamond in the background in html.

How can I use iconv to fix this? Since I think thats the best option right? Right now my page is utf-8 encoded.

I need to support characters like

ı ñ ş

aswell as be able to insert them into my db.

Thanks


First I tried, utf8 encode-decode, failed, changed file format from ASCII to UTF-8, tried utf encode again, changed file format several times and failed.

Then i found out "iconv", tried and failed. Changed locale with "setlocale". Tried Turkish, English and other types, failed.

At last i wrote this function and I'm happy with the output :)

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);


Solved it by using

iconv("ISO-8859-1", "UTF-8", $text);


Although that's true in general if $text contains some Turkish chars like "Çınar" translition will fail unless your environment is set to work on Turkish locale.

In case you may need to set locale within php like below;

setlocale(LC_ALL, 'tr_TR');
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号