Karakter kodlama sorunları: MySQL 5.0 + PHP 5.2

0 Cevap php

Ben bir InnoDB tablo utf8_general_ci varchar alanları containning ile MySQL veritabanı var. Ben (ARMUT :: mdb2 yoluyla) PHP ile onları getir ve (Smarty ile) çıktı bunları çalıştığınızda, ben olsun?? semboller. Ben büyük olasılıkla PHP neden olduğu bu sorunu düzeltmek için bilmek istiyorum.

İyi bilmek bilgiler:

  • Ben üzerinde çalışıyorum sitenin yeni bir versiyonu, eski sürüm Smarty ne mdb2 kullanmak vermedi rağmen aynı problem vardı, bu yüzden nedeni büyük olasılıkla değildir. Eski programcı sorunu gidermek için () htmlentitiesi kullanılır, ama önlemek için çalışıyorum.
  • Tüm dosyalar (şablon, kaynak, vb) karakter kodlaması BOM olmadan UTF-8'dir.
  • Ben bir sayfayı görüntülemek zaman, (şablonlar değil, MySQL gelen olanlar içinde olanlar) tüm aksanlı karakterler doğru gösterilen ve tarayıcıda kodlama UTF-8 vardır. Ben elle ISO-8859-1 bitti geçerseniz, o zaman MySQL karakter doğru outputed, ama diğerleri yok edilir.

Temelde, PHP veya MySQL sorgu / getirme işlemi sırasında bazı noktada ISO-8859-1 veritabanı içinde bulunan UTF-8 veri dönüşümleri gibi görünüyor, ve ben düzeltmek istiyorum budur.

Ben arayan bir sürü yaptık ama herhangi bir çözüm bulamadım ve ben sorunun bir yerde bir ortamda yatıyor umuyorum. I) htmlentitiesi () veya utf8_encode (kullanmak zorunda kalmamak istiyorum, ancak bu PHP6 belirene kadar gitmek için tek yol olabilir.

Bu sizin giriş için teşekkür ederiz!

0 Cevap