Neyse, bugünkü maceralarımız karakter kodlama sorunları ile ilgili. (encoding) Çeşitli yazılımsal sorunlar nedeniyle web sayfalarında "
Ð Ý Þ ð ý
" olarak gördüğümüz, yani hangi kodlamayla gösterirseniz gösterin "þ ð ý
" olmakta ısrar eden yalancı Türkçe karakterlere yuvaya dönüş operasyonu için aşağıdaki ufak PHP kodunu kullanabilirsiniz. Bu kodu yazdığınız dosyayı utf-8 olarak kaydederseniz çıktınız utf-8, iso-8859-9 kaydederseniz de çıktınız iso-8859-9 kodlamasını taşıyacaktır. [[windows-1254 mü? o da ne? düşünmeyin bile, gidin standart bir kodlama kullanın :)]] Eğer çıktıyı bir dosyaya yönlendirmeyecekseniz, uçbirimde görüntüleyebilmeniz için uçbirim programının da bu kodlama seçimine uyumlu olması gerekir:
#! /usr/bin/php -f
<?php
$instring = file_get_contents($_SERVER['argv'][1]);
$search = array( "þ", "ý", "ð", "Ý", "Þ", "Ð","ö", "ü", "Ö", "Ü", "ç", "Ç", """, "‘", "’", "“", "”");
$replace = array( "ş", "ı", "ğ", "İ", "Ş", "Ğ", "ö", "ü", "Ö", "Ü", "ç", "Ç", '"', "'", "'", '"','"');
fwrite(STDOUT, str_replace($search, $replace, $instring ));
?>
Çalışırken neye benziyor peki ?
$ cat debelen.txt
aktarýmý aÞaðÝdaki
$ ./tr-htmlentity.php debelen.txt
aktarımı aŞağİdaki
İkinci belamız, Outlook. Evet bizler zaten standartlara uygun özgür yazılımlar kullanıyoruz [[ değil mi ;) ]] ama şu ya da bu sebeple outlook kullanan birilerini tanıyorsanız, lütfen aşağıda anlatacağım ayarları yaptırın onlara.
Sorun şu, programlar e-posta ve haber grubu iletilerinde hangi kodlamanın kullandığını belirtmezse çeşit çeşit sorunlara yol açıyor ve Türkçe karakterler kendiliğinden düzgün görüntülenemeyebiliyor. Örneğin Thunderbird aşağıdaki gibi bir bilgiyi iletinin içine koyuyor, herkes hangi kodlama olduğunu bilebilir;
Content-Type: text/plain; charset=ISO-8859-9; format=flowed
Ancak Outlook ya da Outlook Express programları alakasız başka şeyler koymasına rağmen kodlamayı belirtmiyor.
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2962
X-RFC2646: Format=Flowed; Response
Outlook kullanan yardımsever arkadaşlarımız iletilerin düzgün kodlama içermesi için gereken ayarı tespit etti [[ Teşekkürler Deniz İpek ve Günhan Gülsoy ]]
araçlar-> seçenekler-> gönder-> haber gönderme biçimi-> düz metin ayarları-> ileti biçimi ekranında yapılması gerekenler:
- "MIME" seçili
- "Metni kodlama: Yok"
- "Başlıkta 8-bit karakterlere izin ver" seçili değil
Content-Type: text/plain;
format=flowed;
charset="UTF-8";
reply-type=response
Bir de çok yerinde bir isme sahip DEMORONISER var, o da çok faydalı, kullanın kullandırın.
2 yorum:
outlook denmiş ama outlook express ayarları var orada.. ne ayak? :D
Bu iki programı da kullanmıyor olduğumu belirtmeme gerek var mı :)
Yorum Gönder