Biz yerel kalkınma sunucu ve canlı bir sitede hem de barındırılan bir uygulama var. Biz UTF-8 yolsuzluk sorunları yaşıyor ve bunları çözmek için nasıl anlamaya arıyoruz.
Sistem uskur ile Symfony 1.0 kullanılarak çalıştırılır.
Geliştirme sunucusunda, biz PHP 5.2.0 ve MySQL 5.0.32 yayınlanıyor. Biz orada bozuk UTF-8 karakterleri deneyimi yok.
Bizim canlı sitede, PHP ve MySQL 5.2.10 5.0.81 çalışıyor. Bu sunucu üzerinde, örneğin ố ve veritabanında saklanan bir kez Σ bozuk gibi bazı karakterler. Bozuk karakterler bitişik soru işaretleri ile özgün karakteri soru işareti veya yaklaşımları ya olarak gösteriyorlar.
Yolsuzluk örnekleri:
Uncorrupted: ố Corrupted: ô?
Uncorrupted: Σ Corrupted: ?
Şu anda geliştirme ve canlı sunucular üzerinde aşağıdaki teknikleri kullanıyor:
Önce başka sorguları yürütme aşağıdaki sorguları yürütme:
SET NAMES 'utf8' COLLATE 'utf8_unicode_ci' SET CHARSET 'utf8'
: Için
<meta>
Content-Type değerini ayarlama<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
. Bizim htaccess dosyasına aşağıdaki ekleme:
AddDefaultCharset utf-8
Kullanımı
mb_*
(multibyte) PHP fonksiyonları gerektiğinde.Harmanlama utf8_unicode_ci kullanmak veritabanı sütunları ayarlamak için emin olmak.
Bu teknikler bizim geliştirme sitesi için yeterli, ancak canlı sitede çalışmaz.
Canlı sitede ben de mysql_set_encoding('ut8', $mysql_connection)
ekleyerek denedim ama bu da yardımcı olmuyor. PHP ve MySQL yeni sürümleri UTF-8 karakter kodlamaları ilgilenmedikleri olduğunu bazı kanıtlar bulduk.