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

PHP替换<sup>标签为上标字符出现O²乱码该如何修复

问题根源

你遇到的O²乱码是典型的UTF-8字符被错误转码为ISO-8859-1编码导致的问题,核心诱因是你用了utf8_decode()函数:

  • ²在UTF-8编码下是双字节字符\xC2\xB2
  • utf8_decode()会把UTF-8字符串转为ISO-8859-1单字节编码,转换过程中\xC2会被映射为字符Â,\xB2会被映射为²,最终就出现了异常的²拼接结果
  • 额外注意你代码里的$POST写法错误,PHP接收POST参数的全局变量是$_POST,少写下划线会导致无法正常获取提交的参数值

修复方案

  1. 直接删除$a = utf8_decode($a);这行转码逻辑,只要前端提交的POST请求默认是UTF-8编码(当前绝大多数Web场景的默认配置),不需要额外做编码转换
  2. 确认你的PHP源文件本身保存为UTF-8无BOM格式,保证你代码中写死的"²"字符串本身编码正确
  3. 保留你已经添加的编码响应头即可,确保输出时客户端按UTF-8解析内容

修复后的核心处理代码如下:

$a = htmlspecialchars_decode($_POST['myValue'], ENT_QUOTES);
$a = str_replace("<sup>2</sup>", "²", $a);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:21:02