Tamam, bir ton malzeme hijyen dizeleri orada ama çok az, ben filtre sonra nasıl bir içerik yönetim sistemi içine sokmak için (şimdi yazdıklarım gibi) kullanıcı girişi hazırlamak için en iyi yöntemleri, bulabilirsiniz dışarı geliyor.
Ben iki dilli (Japonca, İngilizce + diğer Roman dilleri) bina ile sizin ve ® gibi özel karakterleri hem alma ile bir zaman bir halt yaşıyorum, ™, Japonca karakterler ile birlikte görüntülemek için.
Ben çok tutarsız sonuçlar almaya devam.
Ben UTF-8 için her şeyi belirledik:
web sayfası: ve
. Htaccess dosyası: AddDefaultCharset UTF-8 VE (sorunu zorlamak için)
Her db bağlantısından sonra: mysql_query ("SET adları 'UTF8'");
Her veritabanı, tablo ve alan da utf8_general_ci ayarlanır
Magic tırnak kapalı. Ben htmlpurifier varsayılan ayarları ile ilk kullanıcı girişi önişlem, daha sonra bunun üzerinde bu işlevi çalıştırın:
function html_encode($var) {
// Encodes HTML safely for UTF-8. Use instead of htmlentities.
$var = htmlentities($var, ENT_QUOTES, 'UTF-8');
// convert pesky special characters to unicode
$look = array('™', '™','®','®');
$safe = array('™', '™', '®', '®');
$var = str_replace($look, $safe, $var);
$var = mysql_real_escape_string($var);
return $var;
}
Yani veritabanına öyle olsun.
Bu işlevi ile her şeyi filtreleyerek veritabanından geri:
function decodeit($var) {
return html_entity_decode(stripcslashes($var), ENT_QUOTES, 'UTF-8');
}
Ne yazık ki, tüm bu sonra ben HALA tutarsız sonuçlar olsun. En sık ® sembolleri küçük elmas olur.
Ben bu konuda iyi tut heryerde arandı ancak en iyi yöntem ne bulmak için görünmüyor olabilir ...