PHP, XML, Javascript, Mysql, Seo

Web Programlama ile ilgili çözdüğüm sorunları paylaşıyorum.

Bizi Takip Edenler

 

UTF8 ile ISO-8859-9 dönüştürmek

Php yada asp ile de herzaman kodlama yaparken karşınıza çıkabilecek bir sorundan bahsedeceğim.Dil kodlaması gerek veritabanı işlemlerinde gerekse de entegrasyon sistemleri üzerinde çalışırken sürekli takıldığım noktalardan oluştur.

Fakat vereceğim örnekle sanıyorum ki bu konu daha kolay çözülecek.

Bu işlemde php nin mb_convert_encoding fonksiyonunu kullanıyoruz.

 

<div id="foo">
 
<?php
 
$urunadi = "Gölge Saat";
 
$urunadi-iso = mb_convert_encoding ($urunadi, "UTF-8", "ISO-8859-9");
 
$urunadi-utf-8 = mb_convert_encoding ($urunadi, "ISO-8859-9", "UTF-8");
 
?></div>

Şeklinde elinizdeki veriyi isterseniz utf8 den iso-8859-9 karakter setine isterseniz de iso-8859-9 karakter setinden utf-8 e dönüştürebilirsiniz.

utf-8 dönüşümlerinde bazı karakterlerde sorunlar olabiliyor bende bu sorunu kendi kullandığım kod içerisinde php nin strtr fonksiyonunu kullanarak çözüyorum.

<div id="foo">
 
<?php
 
$trkarakter =array(
"\xf6" =&gt; 'o',
"\xd6" =&gt; 'o',
"\x69" =&gt; 'i',
"\xd6" =&gt; 'o',
"\xfe" =&gt; 's',
"\xfd" =&gt; 'İ',
"\xde" =&gt; 's',
"\xd0" =&gt; 'g',
"\xf0" =&gt; 'g',
"\xdd" =&gt; 'i',
"ı" =&gt; 'ı',
"İ" =&gt; 'i',
"ÄŸ" =&gt; 'ğ',
"Ä" =&gt; 'Ğ',
"Ü" =&gt; 'Ü',
"ü" =&gt; 'ü',
"Ç" =&gt; 'Ç',
"ç" =&gt; 'ç',
"Å" =&gt; 'Ş',
"ÅŸ" =&gt; 'ş',
"Ö" =&gt; 'Ö',
"ö" =&gt; 'ö',
 
);
 
$trkaraterli = strtr($urunadi-utf-8,$trkarakterli);
 
echo $trkarakterli;
 
?></div>
Milleti Haberdar Et:
  • Digg
  • del.icio.us
  • Technorati
  • Oyyla
Kategori : PHP
Editör : Suphi Özgür Cankurt
Tarih : 29 May 2008
Saat : 6:50 pm
Yorumlar :
 

2 Comments for this post

 
23 September, 2008 at 5:20 pm

merhaba,
yukaridaki bilgilendirmenizi okudum, belki yardimci olabilirsiniz

sitem icin php ve mysql ile arama motoru yaptim. Gayet iyi calisiyor.

Yalniz sunu da yapmak istiyorum (basaramadim maalesef)
Anahtar kelimelerde ilk harfte Ş,Ç,İ,Ö,Ü gibi cogu bize ozel harf varsa bunlarin kucuk halini yazdirmak istiyorum.

Misal: Aranan kelime:Şair , ben bunu veritabanimda şair olarak aratmak istiyorum

$aranan = $_GET['aranan'];
$aranan = str_replace(”Ş”,”ş”,$aranan);
veya
$aranan = strtolower($_GET['aranan']);
kodları maalesef işe yaramıyor.
Belki ilgili olabilir “Şair” diye aranan kelime adres satırında “%DEair” olarak gözükmekte. Yani Ş = %DE . yardımcı olur musunuz
teşekkürler

 
 
24 September, 2008 at 1:45 am

Bu fonksiyonu kullanabilirsin sanırım.Fonksiyonu tanımla ardından strtolower yerine strtolower_tr olarak kullan.

< ?php
function strtolower_tr($string)
{
$low=array("Ü" => “ü”, “Ö” => “ö”, “Ğ” => “ğ”, “Ş” => “ş”, “Ç” => “ç”, “İ” => “i”, “I” => “ı”);
return strtolower(strtr($string,$low));
}

?>

Çözüme ulaşamazsan daha farklı yöntemler deniyebiliriz.

Fonksiyon : Dinçer Akay

 

Yorum Yazabilirsiniz

 
 
Top Technology blogs