PHP MySQL veritabanı garip karakterler

4 Cevap php

Ben bir MySQL veritabanında saklanır çıkış ürün bilgilerine çalışıyorum, ama bunun içinde bir soru işareti ile bir elmas gibi, bazı garip karakterler yazıyor.

Ben bir encoding/UTF8 sorun olabilir düşünüyorum, ama ben istiyorum kodlamayı belirtilen ettik:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Bu doğru mu? Ne için kontrol etmelisiniz?

4 Cevap

Veritabanından geliyor sadece veriler bu garip karakterler varsa, MySQL bağlantısı kullanarak UTF8'den da olduğundan emin olun:

mysql_query("SET NAMES UTF8");

diğer sorguları önce. Karakterleri 'yazısı' dosyalarda da görünür Aksi takdirde, dosyaları editörü UTF-8 olarak kaydedildiğinden emin olun. Ayrıca PHP ile charset başlığını ayarlamayı deneyebilirsiniz:

header('Content-type: text/html; charset=UTF-8');

Ayrıca sorguladığınız tablolardaki tüm alanları örneğin utf8_general_ci, bazı UTF-8 varyantı olarak ayarlanmış olduğundan emin olun.

Ben sonuç utf8 olmak istiyorum varsayalım

  • Size kodlanmış php script utf8 kaydetmek
  • emin olun sizin http başlık (veya bazı meta etiketler) çıktı utf8 olduğunu söyler
  • MySql tüm tablolar UTF8 edilmesi gerektiğini
  • son ama en az değil, istemci ve sunucu arasındaki bağlantı utf8 olmalıdır. SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8': (Bu php.ini ortamda veya db karşı aşağıdaki sorgu yaparak bir yere ele olabilir

Tüm 4 noktayı takip ederseniz hiç kırık kodlamaları ile herhangi bir sorun asla.

Ben bu sorun vardı son kez, çözüm Tatu Ulmanen söylediklerine benzer, ama biraz farklı ...

Onun çözüm işe yaramazsa Yani, değiştirmeye çalışın

mysql_query("SET NAMES UTF8");

ile

mysql_query("SET NAMES latin1");

MySql varsayılan karakter takımı latin1 olduğunu ve çoğu zaman kullanılan budur çünkü bu demek ....

yardımcı olur umarım ...