Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Webmaster Kaynaklari » Sunucu Tabanlı Programlama (Server Side) » Veritabanları » SQL karakter seti sorunu


Yanıt
 
LinkBack Seçenekler
Old 06.02.2007   #1 (permalink)
 
pardonan's Avatar
 
Üyelik Tarihi: 31.01.2007
Yer: Şanlıurfa
Mesaj: 16
SQL karakter seti sorunu


Merhabalar

site de karakter seti olarak şimdiye kadar, windows-1254 kullanılmaktaydı,
ve bunu UTF-8'e çevirmem gerekiyor.

Fakat veritabanında sorun yaşıyorum. Tablonun mevcut karakter seti latin5_turkish_ci
UTF-8'e uyumlu olması için latin1'e çevirmek istiyorum fakat mevcut verilerde Türkçe karakterler bozuk görünüyor maalesef.

eski database'de metinler şu şekilde görünüyor
Kod:
Altından kalkabiliriz sanırım hayatın. Yolumuz açık :)
fakat UTF-8 karşılaştırması ile sayfa da normal görünmesi için veritabanında ki metinin şu şekilde olması gerek
Kod:
Altından kalkabiliriz sanırım hayatın.Yolumuz açık :)
umarım anlatabilmişimdir.

çok uğraştım ama bu işin bir kısayolu olmalı diye düşünerek size sormak istedim.
velhasıl, normal win-1254 ile kodlanmış metini nasıl UTF-8 uyumlu yapabilirim?

Kullandığım CMS Wordpress 2.0.4
MySQL - 4.1.21
PHP - 4.4.4
Apache - 1.3.37
phpMyAdmin - 2.8.0.2
__________________
# pardonan.com

Mesaj pardonan tarafından 06.02.2007 (01:02) yeniden düzenlendi. Açıklama: yazım yanlışı
pardonan şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 06.02.2007   #2 (permalink)
 
blurise's Avatar
 
Üyelik Tarihi: 05.12.2003
Yer: İstanbul
Mesaj: 899
Re: SQL karakter seti sorunu

PHP konusunda ahkam kesmek istemem ancak, bu tür bir istegi gerceklestirmek icin db de collation i degistirmen gerekmez.

dbden aldigin textleri ekrana yazdirirken ANSItoUTF8() yada LATINtoUTF8() turunde fonksiyonlar kullanmak gerekebilir.

ASP.Net icin konusursak bu islem su sekilde yapiliyor. Response.Write methodu gecerli sayfanin codepage ine gore gelen metinleri otomatik olarak utf-8 ile ansi arasinda ceviriyor.
__________________
Günce;
Zübeyr Dereli;
PGP Public Key;
blurise şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 06.02.2007   #3 (permalink)
 
stalker's Avatar
 
Üyelik Tarihi: 01.11.2000
Yer: İstanbul
Yaş: 27
Mesaj: 713
Re: SQL karakter seti sorunu

utf'e "on the fly" çevirebilirsin ama bu "overhead" olur. gereksiz olur yani. önce varolanı çevir.

tekstleri utf'e çeviren bir araç bul, SQL'i çevir, yeni veritabanın collation ayarını yap sonra import et.
__________________
life is better without braces
stalker şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 06.02.2007   #4 (permalink)
 
Üyelik Tarihi: 23.10.2005
Yer: Eregli
Yaş: 21
Mesaj: 60
Re: SQL karakter seti sorunu

Çalışma esnasında "runtime" karakter setini(charset) değiştirmek (change) istersen iconv() , mb_convert_encoding(); gibi fonksiyonlarla(native PHP functions) işi halledebilirsin.

Ama bu overhead olmasına rağmen tabii ki geçici ( temporary ) bir çözüm olabilir eğer hala yayında bir siten varsa.Veritabanı ( database ) tablolarında sorunu mutlaka çözmek lazım.

Ustteki yaziya kisisel bir protesto :P
Yns_ şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 06.02.2007   #5 (permalink)
 
uzaytek's Avatar
 
Üyelik Tarihi: 06.07.2001
Yer: Ankara
Yaş: 33
Mesaj: 680
Re: SQL karakter seti sorunu

oncelikle latin5'den latin1'e cevirirsen bozulma olması normal zaten? latin1 latin5'in alt kumesi, yani daha az karakter olani. normalde direkt utf8_general ya da utf8_general_ci den birine cevirmen lazim. cevirdikten sonra SQL ile convert edilebilir data sanirim tablo icinde ama hic denemedim.

benim kullandigim yontem genelde stalker'in dedigi gibi datayi export et, tabloyu utf-8 yap. bir arac(Editplus) ile export ettigin datayi utf-8'e cevir ve import et.

bu yontem her 2 yonde ise yariyor.
__________________
uzaytek.com
uzaytek şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 13.02.2007   #6 (permalink)
 
Üyelik Tarihi: 10.02.2007
Yer: Ankara
Mesaj: 1
Re: SQL karakter seti sorunu

Merhaba arkadaşım,
Ben bu sorunu birkaç şekilde atlattım. Birincisi şöyle yapabilirsin; aç config dosyanı (veritabanı ile bağlantı yapan dosya) ordan "mysql_select_db" yazan yeri bul ve alt satıra:

mysql_query("SET NAMES 'latin5'");

kodunu ekle.
---------------------

İkincisi :

PHP Code:
<meta http-equiv="content-type" content="text/HTML; charset=windows-1254" />
<meta http-equiv="content-type" content="text/HTML; charset=ISO-8859-9" />
<?
$tablo
=""//Bozuk olan tr karakterlerin oldugu tablo adi
$alan=""//Bozuk olan tr karakterlerin oldugu alan adi
$id_alan =""//Tabloda primary key olan alanın adı veya id no lar olan alanın ismi
mysql_connect("localhost","kullanıcı adı","sifre"); //db kullanıcı adı ifre 
mysql_select_db("db adı"); //db adı


$kayitlar mysql_query("select * from $tablo"); 
while(
$kayit mysql_fetch_array($kayitlar)) {

$yazi $kayit[$alan]; 
$ara   = array ('ı','Å?','ü','ç','ö','Ä?','Å�','Ã�','İ','Ä�','Åz','Ã�','Ã�','ı','Å?','ç','ö','Ä?','Å�','Ã�','İ','Ä�','Åz','Ã�','Ã�','ü','Ä�'); 
$degis = array ('ı','ş','ü','ç','ö','ğ','ş','Ç','i','ğ','Ş','Ö','Ü','ı''ş''ç''ö''ğ''ş''Ç''i''ğ''Ş''Ö''Ü''ü''ğ'); 
$yeni  str_replace($ara$degis$yazi); 

$islem="update $tablo set $alan='".$yeni."' where $id_alan='".$kayit[$id_alan]."'"
$guncelle mysql_query $islem );

}
echo
"Bitti";
?>
Bu kod ise netopsiyondan yenibir isimli arkadaşıma ait.

Dene bakalım gelişmeleri bekliyorum...
Saygılarımla...
xCodeRR şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 10.03.2007   #7 (permalink)
 
pardonan's Avatar
 
Üyelik Tarihi: 31.01.2007
Yer: Şanlıurfa
Mesaj: 16
Re: SQL karakter seti sorunu

çok teşekkür ederim arkadaşlar cevaplar için.

xCodeRR'ın verdiği kod işe yaradı. sorunu çözdüm.

xCodeRR kod için saol. arşivime aldım
__________________
# pardonan.com
pardonan şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 11.03.2007   #8 (permalink)
 
Visual's Avatar
 
Üyelik Tarihi: 15.03.2004
Yer: İstanbul
Yaş: 26
Mesaj: 84
Re: SQL karakter seti sorunu

Alıntı:
pardonan tarafından gönderilen mesaj: Mesajı Görüntüle
çok teşekkür ederim arkadaşlar cevaplar için.

xCodeRR'ın verdiği kod işe yaradı. sorunu çözdüm.

xCodeRR kod için saol. arşivime aldım

bu kod parçacıgı ile sadece türkçe karakterleri çeviriyorsunuz ama veritabanınızda bunlar gibi bir sürü tanımsız karakter çıkabilir. sağlıklı çözüm almak için iconv() , mb_convert_encoding() gibi fonksiyonları kullanmanızı öneririm.
Visual şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 19.03.2007   #9 (permalink)
 
mrtksn's Avatar
 
Üyelik Tarihi: 27.07.2005
Yer: istanbul - ankara
Yaş: 23
Mesaj: 337
Re: SQL karakter seti sorunu

tamamen aynı sorundan muzdıraptım; çok basit bir çözümü var:

PHP Code:
@mysql_query("SET CHARACTER SET utf8");
@
mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci'"); 
Tablolar latin5_turkish_ci kalabilir, hatta hiç bir değişiklik yapmanıza gerek yok, sadece MySQL e bağlantı kurduktan sonra bu iki query yi kullanın yeter; kolaylık olsun diye bağlantı ve bu sorguları otomatik yapan bir fonksiyon hazırlamanızı tafsiye ederim. kolay gelsin
__________________
kişiselayrıcafotojenik
mac mi alalım pc mi pojesi
mrtksn şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Sponsorlu Bağlantılar
Zoque.Forum
Reklam
Yanıt

Etiketler

sorunu , seti , karakter , sql


 
Zoque'a hoşgeldiniz!
Zoque 27.02.1999 tarihinde yayın hayatına başlamış, paylaşıma dayalı bir oluşumdur. Tasarım, teknoloji, web, kültür ve sanat ana başlıkları altında bilgi paylaşımı ve benzer değerlere sahip katılımcıların birbirleriyle iletişime girmelerine imkan sağlar. "Az ama Öz" sloganından yola çıkarak, kaliteli ve nitelikli katılımı temel alır.

Saygın ve ciddi bir ortamda yardımlaşmak, haberleşmek, kendi bildiklerini diğer katılımcılarla paylaşmak isteyen, oluşumumuza düzenli katılımda bulunacağı inancını taşıyan konuklarımızı üye olmaya davet ediyoruz. [ » ]


Üye Girişi:

En popüler ilk 100 etiket
Tag Cloud
acil adsl ajax almak arama araniyor ariyorum ariyoruz asp bilen bilgi bilgisayar blog calisma canon css div domain dosya eleman film firefox flash font form forum fotograf freelance google gore grafik grafiker hakkinda hangi hata hatasi hosting html ilgili ilk image internet istanbul istiyorum java javascript karakter kayit kisisel kullanimi link logo mac mail menu microsoft muzik mysql nasil neden nedir online photoshop php problemi program programi reklam resim satilik sayfa script server ses sistemi site sitesi son soru sorun sorunsali sorunu sql swf tasarim tasarimci tasarimcisi tasarimi turk turkce veri video web windows wordpress xml yardim yazi yeni zoque
Zoque RSS Aboneliği
Son eklenen konuları e-posta ile haber verelim mi?

Forum Yazılımı: vBulletin® Version 3.7.4 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

Arayüz/Skin "Güneş" © www.zoque.com / net. Copyright © 1999 - 2008
Forum Saati GMT +2. Şu anda saat: 00:06.