You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向MySQL插入数据前如何将智能撇号转换为普通撇号解决乱码问题

问题描述
  • 基于Summernote所见即所得编辑器接收用户输入字符串,当用户从Google Docs等平台粘贴文本时,内容会携带类似child’s中的特殊撇号
  • 内容存储的数据库配置为:字符集utf8mb4,排序规则utf8mb4_unicode_ci
  • 前端展示异常:Mac端Safari浏览器中该特殊撇号会显示为问号,PC端Chrome浏览器显示正常
  • 邮件发送异常:通过AWS Simple Email Service调用PHPMailer发送包含该特殊撇号的邮件时,发送流程会直接中断
  • 核心需求:在数据存入数据库前,就将这类特殊字符统一转换为普通撇号
已尝试的无效方案

执行以下代码均无法实现替换效果:

$str = mb_convert_encoding($str, 'UTF-8','utf8mb4');
$str = str_replace("’","'",$str);
$str = strtr($str,array("’" => "'"));

编码检测结果为UTF-8:
echo mb_detect_encoding($str); // 输出结果为UTF-8
已参考同类问题的所有答案(包含未被采纳的答案),测试后均无效果。

可行解决方案

通过匹配各类特殊标点的UTF-8字节序列,批量替换为对应的普通标点即可解决问题,实现代码如下:

function convert_smart_quotes($string) 
{ 
   $search = [                 
                "\xC2\xAB",     // « (U+00AB) UTF-8编码
                "\xC2\xBB",     // » (U+00BB) UTF-8编码
                "\xE2\x80\x98", // ‘ (U+2018) UTF-8编码
                "\xE2\x80\x99", // ’ (U+2019) UTF-8编码
                "\xE2\x80\x9A", // ‚ (U+201A) UTF-8编码
                "\xE2\x80\x9B", // ‛ (U+201B) UTF-8编码
                "\xE2\x80\x9C", // “ (U+201C) UTF-8编码
                "\xE2\x80\x9D", // ” (U+201D) UTF-8编码
                "\xE2\x80\x9E", // „ (U+201E) UTF-8编码
                "\xE2\x80\x9F", // ‟ (U+201F) UTF-8编码
                "\xE2\x80\xB9", // ‹ (U+2039) UTF-8编码
                "\xE2\x80\xBA", // › (U+203A) UTF-8编码
                "\xE2\x80\x93", // – (U+2013) UTF-8编码
                "\xE2\x80\x94", // — (U+2014) UTF-8编码
                "\xE2\x80\xA6"  // … (U+2026) UTF-8编码
    ];

    $replacements = [
                "<<", 
                ">>",
                "'",
                "'",
                "'",
                "'",
                '"',
                '"',
                '"',
                '"',
                "<",
                ">",
                "-",
                "-",
                "..."
    ];

    return str_replace($search, $replacements, $string);
} 

内容的提问来源于stack exchange,提问作者Cary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:09:05