如何在PHP中替換Microsoft編碼的引號(hào)“ ” ‘ ’由于我的應(yīng)用程序中存在編碼問(wèn)題,我需要用常規(guī)引號(hào)('和“)替換Microsoft Word的單引號(hào)和雙引號(hào)()的版本。我不需要它們是HTML實(shí)體,我不能更改我的數(shù)據(jù)庫(kù)模式。我有兩個(gè)選擇:使用正則表達(dá)式或關(guān)聯(lián)數(shù)組。有一個(gè)更好的方法嗎?
3 回答

蝴蝶刀刀
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
我找到了這個(gè)問(wèn)題的答案。你需要使用iconv()
php中的函數(shù)只需一行代碼:
// replace Microsoft Word version of single and double quotations marks (“ ” ‘ ’) with regular quotes (' and ")$output = iconv('UTF-8', 'ASCII//TRANSLIT', $input);

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
您的Microsoft編碼引號(hào)可能是印刷引號(hào)。str_replace
如果您知道要替換它們的字符串的編碼,則可以簡(jiǎn)單地替換它們。
這是UTF-8的示例,但使用單個(gè)映射數(shù)組strtr
:
$quotes = array( "\xC2\xAB" => '"', // ? (U+00AB) in UTF-8 "\xC2\xBB" => '"', // ? (U+00BB) in UTF-8 "\xE2\x80\x98" => "'", // ‘ (U+2018) in UTF-8 "\xE2\x80\x99" => "'", // ’ (U+2019) in UTF-8 "\xE2\x80\x9A" => "'", // ? (U+201A) in UTF-8 "\xE2\x80\x9B" => "'", // ? (U+201B) in UTF-8 "\xE2\x80\x9C" => '"', // “ (U+201C) in UTF-8 "\xE2\x80\x9D" => '"', // ” (U+201D) in UTF-8 "\xE2\x80\x9E" => '"', // ? (U+201E) in UTF-8 "\xE2\x80\x9F" => '"', // ? (U+201F) in UTF-8 "\xE2\x80\xB9" => "'", // ? (U+2039) in UTF-8 "\xE2\x80\xBA" => "'", // ? (U+203A) in UTF-8);$str = strtr($str, $quotes);
如果您需要其他編碼,可以使用mb_convert_encoding
轉(zhuǎn)換鍵。
- 3 回答
- 0 關(guān)注
- 491 瀏覽
添加回答
舉報(bào)
0/150
提交
取消