İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Karakter problemi

cortes

0
İyinet Üyesi
Katılım
10 Eylül 2006
Mesajlar
128
Reaction score
0
Merhaba arkadaşlar utf8_unicode_ci olan bir veritabanım var.SQLi phpmyadminden import ettiğimde karakter problemi olmuyor.Ama kendi yazdığım sql import scriptinde import edilirken TR karakterler hatalı görünüyor.Sizce scriptte nasıl bir düzenleme yapmayalıyım?Sabahtan beri sorunu çözemedim.

Cevaplarınızı bekliyorum.
@cortes
 

cortes

0
İyinet Üyesi
Katılım
10 Eylül 2006
Mesajlar
128
Reaction score
0
Latin5de de problem var latin5 turkish i seçiyorum Türkçe karakterleti ? olarak kaydediyor.utf de bu problem yok ama onda da yukarıda bahsettiğim problem var.Anlamadım gitti..
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
vertabanına bağlantı yaptığınız bölüme aşağıdaki kodu ekleyip bir dener misiniz ?

PHP:
mysql_query("SET NAMES 'latin5'");    
mysql_query("SET CHARACTER SET 'latin5'");    
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
 

cortes

0
İyinet Üyesi
Katılım
10 Eylül 2006
Mesajlar
128
Reaction score
0
Hocam problemi buldum sadece çözmesi kaldı:)
problem
utf8_unicode_ci de Ý karakterinin PHPMyadminden sql çıktısı Ý şeklinde fakat import ederken phpmyadmin yine aynı şekilde algılayıp import ediyor ve sitede İ karakteri görünüyor bende ise &#221 karakteri olarak import ettiği için yani ansi kodunda ondan dolayı sitede İ yerine Ý şeklinde görünüyor.Bunu replace yöntemiyle yapmak çok uzun sürecektir çünkü kimbilir hangi karakterleri nasıl görüyordur.Bunun basit yöntemini bilen arkadaşlar varmı acaba??
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Bu aşağıdaki işlem galiba sorunuza çözüm oluşturur...

PHP:
<?
function cevir ($url,$to="windows-1254",$from="utf8") {
   if($to=="windows-1254" && $from=="utf8"){
       $str_array = array(
       chr(196).chr(177) => chr(253),
       chr(196).chr(176) => chr(221),
       chr(195).chr(182) => chr(246),
       chr(195).chr(150) => chr(214),
       chr(195).chr(167) => chr(231),
       chr(195).chr(135) => chr(199),
       chr(197).chr(159) => chr(254),
       chr(197).chr(158) => chr(222),
       chr(196).chr(159) => chr(240),
       chr(196).chr(158) => chr(208),
       chr(195).chr(188) => chr(252),
       chr(195).chr(156) => chr(220)
       );
       return str_replace(array_keys($str_array), array_values($str_array), $url);

   }
   return $url;
}  ?>
 

cortes

0
İyinet Üyesi
Katılım
10 Eylül 2006
Mesajlar
128
Reaction score
0
Saol hocam kodu aspye çevirip deneyeceğim fakat
chr(196).chr(177) => chr(253),
return str_replace(array_keys($str_array), array_values($str_array), $url);
return $url;

buralardaki işlemleri anlamadım:)
 

cortes

0
İyinet Üyesi
Katılım
10 Eylül 2006
Mesajlar
128
Reaction score
0
Sanırım chr(196).chr(177) => chr(253), bunun anlamı ı=ı bu değilmi? :) ama
return str_replace(array_keys($str_array), array_values($str_array), $url);
return $url;
bunları hala anlamış değilim :) neyse sanırım replace yöntemiyle yapıcaz bunu :) Umarım doğru gidiyorumdur :)
 

cortes

0
İyinet Üyesi
Katılım
10 Eylül 2006
Mesajlar
128
Reaction score
0
Hocam bunu aspye çevirdim fakat etkisi olmadı.İstediğim şey &#221 ; karakterleri aslında Ý karakteridir.Bunu veritabanına Ý şeklinde kaydetmek istiyorum fakat nedense &#221 ; şeklinde kaydoluyor.Yani unicode setinde kayıt etmek istiyorum fakat ansi setinde kayıt oluyor.
&#221 ; = Ý

Yardımcı olurmusunuz?Converter veya başka bir fikir aklıma artık birşey gelmiyor yaklaşık 10 saattir bununla uğraşıyorum..
 

cortes

0
İyinet Üyesi
Katılım
10 Eylül 2006
Mesajlar
128
Reaction score
0
Ne kadar flood olsada artık kusura bakmayın çünkü sonunda çözdüm.@yagmayok fikrinden biraz (ç)alıntı yapsamda birazda kendim katarak sorunu çözdüm :)


Ansi To Unicode Converter :)
function cevir(karakter)

karakter=Replace(karakter,"ý",Chr(253))
karakter=Replace(karakter,"ð", Chr(240))
karakter=Replace(karakter,"Ý", Chr(221))
karakter=Replace(karakter,"Ð", Chr(208))
karakter=Replace(karakter,"Þ", Chr(253))
karakter=Replace(karakter,"þ", Chr(254))
cevir=karakter
end function

Kullanımı:
cevir(degisken) veya cevir("metin")

:)

Cümleten herkese kolay gelsin.Yardımlarınız içinde size ayrıca teşekkür ederim arkadaşlar..
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst