GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

MySQL türkçe karakter sorunu

Başlatan VERITAS, 25 Nisan 2020, 02:42:55

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

VERITAS

Merhabalar, arkadaşlar oyun içerisinden gönderilen türkçe karakter sql tabana ? işareti olarak kaydediliyor. Bunun çözümü tam olarak nasıldır? Yorumlar için şimdiden teşekkür ederim, iyi forumlar dilerim. SQL tabanda karşılaştırma olarak latin5_turkish_ci
kullanıyorum.


Eamon

MySQL veri tabanını utf8_turkish_ci olarak kullan ve pawnoda charseti utf8 olarak değiştir.

PAWN Kodu: Seç
mysql_set_charset("utf8", BAGLANTI DEĞİŞKENİ BURAYA);
Ek olarak oyun içerisine Türkçe karakter verileri çekmek istediğinde şunları kullanabilirsin;

PAWN Kodu: Seç
mysql_query(BAGLANTI DEĞİŞKENİ BURAYA, "SET NAMES `latin5`");
mysql_query(BAGLANTI DEĞİŞKENİ BURAYA, "SET CHARACTER SET `latin5`");
mysql_query(BAGLANTI DEĞİŞKENİ BURAYA, "SET COLLATION_CONNECTION = `latin5_turkish_ci`");

Not; MySQL R39 için bunlar, diğer sürümlerde belki farklıdır fonksiyonlar, ona göre samp wiki'den bakabilirsin.
Son düzenlenme: 25 Nisan 2020, 03:11:55 Metafor
Bugünün güzel zamanları, yarının üzücü düşünceleridir.

VERITAS

PAWN Kodu: Seç
mysql_set_charset("utf8", BAGLANTI DEĞİŞKENİ BURAYA);
Üsttekini OnGameModeInit'e yazacağım değil mi? Çünkü yazdım ve ardından sql'i de utf8_turkish_ci olarak güncelledim. Ardından tekrar denediğimde yine SQL'e türkçe karakterleri ? şeklinde yazdı.

@Metafor


Eamon

Mysql ile bağlantı kurulan yere ekle onu.

Bugünün güzel zamanları, yarının üzücü düşünceleridir.

VERITAS

Alıntı yapılan: Metafor - 25 Nisan 2020, 04:31:36
Mysql ile bağlantı kurulan yere ekle onu.

Evet, OnGameModeInit'te benim bağlantı yeri ve oraya yazdım. Mysql'de ise türkçe karakter sorunu vermemesi için istediğim değikeni utf8_turkish_ci olarak güncelledim fakat sunucudan sql'e gelen girdiler yine de ? işareti gibi karakterle gösteriliyor. Sadece "mysql_set_charset("utf8", BAGLANTI DEĞİŞKENİ BURAYA);" ve sql de "utf8_turkish_ci" yi ayarlamam yeterli değil mi?

@Metafor


Eamon

Şimdi olayı biraz detaylı anlatmaya çalışıcam.

Samptan, mysql veri tabanına Türkçe karakterli metin gönderirsen, o veriler orda farklı görünür. Eğer normal gözüksün onlar diyorsan charseti utf8 olarak yapmalısın.

Mysql veri tabanından utf8 karakter içeren veri çektiğin zaman karakterler sampta "?" gibi görünür. Bunu da düzeltmek istiyorsan o attığım diğer şeyleri kullan.

Bugünün güzel zamanları, yarının üzücü düşünceleridir.

VERITAS

Alıntı yapılan: Metafor - 25 Nisan 2020, 05:42:46
Şimdi olayı biraz detaylı anlatmaya çalışıcam.

Samptan, mysql veri tabanına Türkçe karakterli metin gönderirsen, o veriler orda farklı görünür. Eğer normal gözüksün onlar diyorsan charseti utf8 olarak yapmalısın.

Mysql veri tabanından utf8 karakter içeren veri çektiğin zaman karakterler sampta "?" gibi görünür. Bunu da düzeltmek istiyorsan o attığım diğer şeyleri kullan.

Usta, chartseti uft8 olarak yaptım OnGameModeInit'im de fakat hala ? işareti olarak gözüküyor garip bir şekilde.


Eamon

Bugünün güzel zamanları, yarının üzücü düşünceleridir.

VERITAS


Eamon

Bir şeyleri yanlış yapıyorsun o zaman. Charseti, sql_connect() gibi fonksiyonun içerisine yazıyorsun değilmi?

Bugünün güzel zamanları, yarının üzücü düşünceleridir.

VERITAS

Alıntı yapılan: Metafor - 25 Nisan 2020, 05:57:18
Bir şeyleri yanlış yapıyorsun o zaman. Charseti, sql_connect() gibi fonksiyonun içerisine yazıyorsun değilmi?

PAWN Kodu: Seç
mysql_set_charset("utf8", g_SQL);
Böyle yazdım. R41-4 kullanmaktayım.

@Metafor


Eamon

Bu arada bunu sen neden değiştirmek istiyorsun, oyuncu panelinden veri çekmek için felan mı?

Bugünün güzel zamanları, yarının üzücü düşünceleridir.

VERITAS

Alıntı yapılan: Metafor - 25 Nisan 2020, 06:00:23
Bu arada bunu sen neden değiştirmek istiyorsun, oyuncu panelinden veri çekmek için felan mı?

Grup oluşturmak için bir sistem yazdım kendi bilgilerim dahilinde. Ve gruba isim veriliyor. Grubun isminde türkçe karakter kullanıldığında SQL'e gelince "?" gibi karakterler gözüküyor. Kişi /grup yazınca mesela kişiye bulunduğu grubun ismi geliyor fakat Mysql'e "?" şeklinde karakterler girdi olduğundan ötürü kişi /grup yazınca ona da aynı şekilde "?" karakterleri geliyor. Bu durumun yaşanmaması için değiştirmek istiyorum.


Eamon

Normal de charset felan hiç bir şey kullanmadan veri tabanına veri aktardığında bir sorun olmaz. mysql_set_charseti kaldır o zaman ve gönderilen tabloyu latin1_swedish_ci olarak değiştir dene bi.

Bugünün güzel zamanları, yarının üzücü düşünceleridir.

VERITAS

Alıntı yapılan: Metafor - 25 Nisan 2020, 06:10:58
Normal de charset felan hiç bir şey kullanmadan veri tabanına veri aktardığında bir sorun olmaz. mysql_set_charseti kaldır o zaman ve gönderilen tabloyu latin1_swedish_ci olarak değiştir dene bi.

Denedim ve Mysql'de "ş" harfinde "?" karakteri yazıyordu.