如何在PHP中替换Microsoft编码的引号

如何在PHP中替换Microsoft编码的引号

“ ” ‘ ’由于我的应用程序中存在编码问题,我需要用常规引号('和“)替换Microsoft Word的单引号和双引号()的版本。我不需要它们是HTML实体,我不能更改我的数据库模式。

我有两个选择:使用正则表达式或关联数组。

有一个更好的方法吗?


森林海
浏览 480回答 3
3回答

蝴蝶刀刀

我找到了这个问题的答案。你需要使用iconv()php中的函数只需一行代码:// replace Microsoft Word version of single  and double quotations marks (“ ” ‘ ’) with  regular quotes (' and ")$output = iconv('UTF-8', 'ASCII//TRANSLIT', $input);

繁花不似锦

您的Microsoft编码引号可能是印刷引号。str_replace如果您知道要替换它们的字符串的编码,则可以简单地替换它们。这是UTF-8的示例,但使用单个映射数组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转换键。
打开App,查看更多内容
随时随地看视频慕课网APP