Almak ve HTML Arıtma kullanarak düzgün davranmaya nbsp nasıl?

2 Cevap php

I HTML Purifier benim PHP projede ve kullanıcı girişi ile düzgün çalışması için alma konusunda sorun yaşıyorum kullanıyorum.

Kullanıcıların bir WYSIWYG editörü (TinyMCE) kullanarak HTML girmek, ancak bir kullanıcı HTML varlık   (bölünemez boşluk) girdiği zaman o kadar veritabanına kurtulur yaşıyorum Bu garip yabancı karakter (Â).

Ben   gibi düzgün görüntülenen alır WYSIWYG editörü kullanarak kaydettiğiniz girişi düzenlemek Ancak, şeydir. Görüntülenen zaman da düzgün, sadece kaynak kodunda bu bölünemez boşluk karakteri gerçek bir alan olarak görünüyor, ama değil.

Ayrıca, MySQL veritabanı o garip yabancı karakter olarak gösterir.

I Unicode and HTML Purifier ile ilgili doc okumak ve UTF-8 olması benim veritabanı ve web sayfası kodlama değişti, ama hala bölünemez boşluk karakteri karıştırıldıysa olmamak ile ilgili sorunlar yaşıyorum. Diğer HTML gibi &lt; ve &gt;, < ve > olarak kaydedilmiş olsun gibi varlıklardır, ama neden {[(5) ]}?

2 Cevap

Bölünemez boşluk, bir garip yabancı bir karakter gibi veritabanına kaydedilir varlık değildir, o two karakter olarak kaydedilir ediliyor. Unicode bölünemez boşluk karakteri ISO-8859-1 "Â" gibi görünüyor (yani bölünemez boşluk ve ardından garip bir yabancı karakter). Ki, 0xC2 0xA0 olarak UTF-8 kodlanmış

Muhtemelen ISO-8859-1 (varsayılan) olarak MySQL verilerini göndermek için PHP neden veritabanı bağlantısı üzerinde SET NAMES 'utf8' yapmak unutuyorsun.

Bakmak "UTF-8 all the way through…" PHP ve MySQL kullanarak düzgün UTF-8 kurmak için nasıl görmek için.

Ayrıca bu &#160; &nbsp; büyük olasılıkla hiç çıkışı varsa, herhangi bir insan okunabilir XML gerektirir için bir alternatif olduğunu bilmek yardımcı olabilir ;)