我想一些幫助,我的網站沒有顯示喜歡E的某些字符, - ,等等等等。重音和其他非ASCII字符不顯示在網頁上
我已經tryed這種方法來獲得他們
function UTFeer($v) {
//reject overly long 2 byte sequences, as well as characters above U+10000 and replace with ?
$v = preg_replace('/[\x00-\x08\x10\x0B\x0C\x0E-\x19\x7F]'.'|[\x00-\x7F][\x80-\xBF]+'. '|([\xC0\xC1]|[\xF0-\xFF])[\x80-\xBF]*'. '|[\xC2-\xDF]((?![\x80-\xBF])|[\x80-\xBF]{2,})'. '|[\xE0-\xEF](([\x80-\xBF](?![\x80-\xBF]))|(?![\x80-\xBF]{2})|[\x80-\xBF]{3,})/S', '?', $v);
//reject overly long 3 byte sequences and UTF-16 surrogates and replace with ?
$v = preg_replace('/\xE0[\x80-\x9F][\x80-\xBF]'. '|\xED[\xA0-\xBF][\x80-\xBF]/S','?', $v);
return $v;
}
我的數據庫是來自wordpress,現在我不再使用wordpress,而是海關係統從db中獲取數據。 可以請一些一個扶,有關如何顯示在網站的所有文字.. 謝謝
編輯:我現在用的,這個代碼,它似乎工作,但就是這個代碼「重」的網站?
function normalize_special_characters($str)
{
# Quotes cleanup
$str = ereg_replace(chr(ord("`")), "'", $str); # `
$str = ereg_replace(chr(ord("´")), "'", $str); # ´
$str = ereg_replace(chr(ord("„")), ",", $str); # „
$str = ereg_replace(chr(ord("`")), "'", $str); # `
$str = ereg_replace(chr(ord("´")), "'", $str); # ´
$str = ereg_replace(chr(ord("「")), "\"", $str); # 「
$str = ereg_replace(chr(ord("」")), "\"", $str); # 」
$str = ereg_replace(chr(ord("´")), "'", $str); # ´
$unwanted_array = array( 'Š'=>'S', 'š'=>'s', 'Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E',
'Ê'=>'E', 'Ë'=>'Ë', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U',
'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss', 'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c',
'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'ë', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o',
'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y');
$str = strtr($str, $unwanted_array);
# Bullets, dashes, and trademarks
$str = ereg_replace(chr(149), "•", $str); # bullet •
$str = ereg_replace(chr(150), "–", $str); # en dash
$str = ereg_replace(chr(151), "—", $str); # em dash
$str = ereg_replace(chr(153), "™", $str); # trademark
$str = ereg_replace(chr(169), "©", $str); # copyright mark
$str = ereg_replace(chr(174), "®", $str); # registration mark
return $str;
}
爲您的數據庫設置正確的編碼,用於您的數據庫連接,在您的元標記的http標頭中。最後,確保你的瀏覽器檢測到正確的編碼 – knittl
'的mysql_query(「集名稱‘UTF8’」);'關鍵字這裏是PHP的MySQL UTF8 – Prix
你從哪裏得到你所引用的代碼,誰告訴你這將是適當的你的問題?根據評論,它旨在刪除_illegal_和_unwanted_ UTF-8序列。對於已經格式良好的數據(並保留在BMP中),它不應該做任何事情。 –