Zend Framework ile yapılan projede Aksanları sorun

3 Cevap php

Bizim web uygulaması test sırasında ilginç bir sorun bulundu.

Ben localhost (Windows) ve online test sunucu (Linux) üzerinde uygulama var. Her ikisi de (Linux sunucu üzerinde) aynı DB bağlanır. Ben sonucu Linux sunucu ürün aksan üzerinde bulunan uygulama formu ile bir metin alanını düzenlemek ve onsuz DB kaydetmek için çalıştı. Ama locahost üzerinde aynı kod ben yazdım doğru olarak aksan ile tüm metni kaydetmek (Windows) ile, aynı eylemi çalıştı.

Ben PHP yapılandırmasını kontrol etmek denedim, ama her ikisi de makinelerde aynı konfigürasyona sahip.

Herkes bunu neden ne sorun bulmak için aramak zorunda gereken bir fikir var mı?

3 Cevap

Farklı bir sistem üzerinde farklı davranır, bu alanda ont bir filtre kullanarak bir sorun bulundu.

Windows makinede MySQL örneğinde karakter ayarlardan bir veya daha fazla UTF8, bu sorguyu çalıştırmayı deneyin ayarlı değil gibi geliyor:

show variables like '%character%'

Çıkış benim veritabanı çıkışları o yürütülmesi character_encoding ilgili sunucu değişkenleri olacaktır:

character_set_client        utf8
character_set_connection    utf8
character_set_database    utf8
character_set_filesystem    binary
character_set_results      utf8
character_set_server        utf8
character_set_system        utf8
character_sets_dir        /usr/share/mysql/charsets/

Benim en iyi tahminim bu bir veya daha fazla latin1 olarak ayarlanmış olduğunu

Ayrıca, harmanlama kontrol etmek isteyebilirsiniz, yani bu idam

show variables like '%collation%'

Ve sizin gibi bir şey elde edeceksiniz:

collation_connection    utf8_general_ci
collation_database    utf8_general_ci
collation_server        utf8_general_ci

İki sunucu aynı kodlama sayfa hizmet musunuz?

Ateş, sağ tıklayın ve 'sayfa bilgisi' sayfasını ziyaret edin. Kodlama için bir giriş olacak. Bu doğru aktarmak için UTF-8 veya benzeri kodlama gerekir.

Bundan sonra, veritabanı kurulumu kontrol edin. Sen UTF8'i kullanmak için MySQL bağlantısını ayarlamak gerekir, ve tablolar ve sütunlar gibi UTF8 ayarlanmış olmalıdır.

Sen bağladıktan sonra aşağıdaki sorgu yayımlayarak belirlenen mysql bağlantı karakteri ayarlayabilirsiniz:

SET NAMES 'utf8'