çekçe karakter 'ě'

2 Cevap php

Ben doğru benim web sayfalarında bu karakter göstermek mümkün değilim. Ben, bu sayfa için UTF-8 karakter setlerini kullanıyorum ben ISO-8859-2 kullanmak zorunda? Ben bir db bu karakter ile ve bunun üzerine bu bir dize alıyorum, o kadar kaydedildiği ě. Benim Tarayıcı göstermek sadece html etiketi.

Bu benim web sayfasında göstermek değil ki (şu anda) tek karakter bulunuyor. Ben http://www.czech.cz için bir göz atın ettik ve onlar UTF-8 kullanmak.

Herhangi öneriyor?

take care! Andrea

2 Cevap

Eğer tarayıcıda ě görünce, ya da ne zaman kaynağı görmek musunuz? Eğer tarayıcınızda görüyorsanız, o zaman muhtemelen çift kodlanmış bir yere davranıyor - ne olursa olsun sayfaya çıkışlar onu muhtemelen o kadar unencoded HTML tespit edilir ve HTML-enjeksiyon çeşit sizi korumak için çalışıyor. Bunu yapmak değil yapmak isteyeceksiniz. Ama daha da derin bir sorun var. Lütfen sayfa UTF-8 kadar servis ve veri UTF-8 içinde ise, ilk etapta bir HTML varlık haline çevirmek için herhangi bir neden yoktur. Sen UTF-8 veri geçen edilmelidir. Sen not, farklı bir karakter kodlaması geçmek gerekiyor.

Öncelikle, evet, gerçekten UTF-8 kullanıyor olmalıdır. Ama bu sahip veriler zaten UTF-8 kodlanmış olduğu anlamına gelmez.

İkincisi, HTML veritabanında kodlanmış o karakter gibi geliyor already. Bu ne sayfası bu karakteri also yanı sıra içeriği kodlamak HTML çalışır görüntüleniyor gibi görünüyor, çünkü bu bir sorundur. İşte ben neden bahsettiğimi bir örnek.

Data from user: ě
Data HTML encoded (via htmlentities()) prior to going into DB: ě
Data stored in DB: ě
Data retrieved from DB: ě
Data HTML encoded before being printed to the page: ě
Data as seen in the browser: ě

Görüyor musun? 2. kodlama adım imi bir varlığın kendisi dönüştürülür böylece karakter, double encoded olur.

Bu veritabanında saklamadan önce HTML kodlama verileri ile sorundur. Bu, sadece depolama öncesinde önce, içeriği değil görüntüleme için yapılmalıdır.