U 009 A PHP UTF-8 kodlama sorunu

3 Cevap php

Ben U Unicode karakter 009 A. görüntüleme sorunları var

Bu "S" gibi görünür, ama bunun yerine içeride numaraları 009a ile dikdörtgen bir blok gibi görünüyor gerekir.

"& # X9a," varlığa dönüştürme doğru karakterini görüntüler, ancak ben veritabanında varlıkları saklamak istemiyorum.

Web sayfasının kodlaması UTF-8 olduğunu.

Karakter URL-kodlanmış "% C2% 9A" olduğu gibi.

Reproduce: # php -E 'echo urldecode("%C2%9A");' > /tmp/test ; less /tmp/test

Bu bana verir daha az ya da <9A> vim.

3 Cevap

Unicode karakter "š" U 0161 değil, U 009 A

Ben başka bir karakter kümesi 0x9A olduğunu sanıyorum.

O karakteri ile yüklü bir yazı yok zaman 009a ile kutusu genellikle gösterilir.

Eğer girdi kodlaması olarak UTF-8 kullanıyorsanız, o zaman sadece ovaya š kullanabilirsiniz. Ya giriş kodlama bağımsız bulunuyor (çift tırnak) onaltılık "\xC2\x9A" kullanabilirsiniz. Veya utf8_encode("\x9A") Unicode ve ISO 8859-1 ilk 256 karakter özdeş beri.

Ben çıktı HexDump yaparsanız echo urldecode("%C2%9A"); Ben karakter 0x9A için doğru UTF-8 kodlama olan c2 9a olsun.

Sen utf8_encode("\x9A") çıkışından aynı kodlamayı olsun

Unicode karakter 0x9A görüntülemeye çalıştığınızda, ben de bir kare kutu olsun - bu olması gerektiğini düşünüyorum karakter değil şüpheli (Aha: Azquelt gönderdi gibi, unicode karakter "š" U 0161 değil, U 009 A)