Siz akıllı tırnak ve tire ("" -) yapmak için tüm yol boyunca UTF-8 yüklü ve diğer non-ASCII karakterleri güvenilir bir şekilde çalışabilir:
(1) tarayıcısı size UTF-8 kodlanmış karakterleri gönderir emin olun. UTF-8 olması formunu içeren sayfayı bildirerek bunu:
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
...
(IE sağ çalışmaz ki, {[) (0]} geçiyoruz.)
(2) ham bayt ile PHP fiyatları onlar konum ne kodlama umursamıyor, ama veritabanı bakımını yapar, böylece PHP bayt Bu içeri geliyor kodlayan anlatmamız gerekenleri {[(0) olduğunu mysql_set_charset tercih olabilir ama]}, yapıyor.
Uygun karakterler veritabanını ulaştığında (3), tüm karakterler sığabilecek emin olmak için bir Unicode kodlama bunları saklamak gerekir. Her sütun farklı bir kodlama olabilir, ama bunu UTF-8 kullanmak size CREATE table
tüm metin sütunları yapmak için zaman DEFAULT CHARACTER SET utf8
kullanabilirsiniz. İsterseniz de utf8
için bir veritabanı veya tüm sunucu için varsayılan karakter seti olabilir.
Eğer CREATE
tabloları d ve olmayan bir UTF-8 harmanlama zaten varsa, tabloları yeniden veya alter gerekecek. Sen kullanarak geçerli harmanlama kontrol edebilirsiniz SHOW FULL COLUMNS FROM sometable;
.
(4) htmlspecialchars()
kullanarak PHP emin HTML-kodlamak metin çıkış yapın ve değil htmlentities()
, hangi varsayılan irade pisliği ASCII olmayan karakterler tarafından.
[You can, (2) ve (3), sadece bağlantı ve tablo depolama için varsayılan Latin-1 kodlamasını kullanabilirsiniz, ancak yine de onun içinde UTF-8 bayt koymak için bir alternatif olarak. Bu yaklaşımın dezavantajı veritabanına bakarak diğer araçlar yanlış bakacağız ve alt / üst harf karakterleri beklenen harf duyarsız bir şekilde birbirlerine karşı karşılaştırmak olmaz olmasıdır.]