为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
森林海 2019-08-01 16:13:35
如何在PHP中替换Microsoft编码的引号“ ” ‘ ’由于我的应用程序中存在编码问题,我需要用常规引号('和“)替换Microsoft Word的单引号和双引号()的版本。我不需要它们是HTML实体,我不能更改我的数据库模式。我有两个选择:使用正则表达式或关联数组。有一个更好的方法吗?
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

我找到了这个问题的答案。你需要使用iconv()php中的函数只需一行代码:

// replace Microsoft Word version of single  and double quotations marks (“ ” ‘ ’) with  regular quotes (' and ")$output = iconv('UTF-8', 'ASCII//TRANSLIT', $input);


查看完整回答
反对 回复 2019-08-01
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

您的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转换键。


查看完整回答
反对 回复 2019-08-01
  • 3 回答
  • 0 关注
  • 479 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信