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

特殊字符无法转换为UTF-8,Windows-1252转码无效如何解决

问题本质

出现乱码属于典型的UTF-8字节流被错误用Windows-1252解码的场景:

  • 符号°的UTF-8编码为0xC2 0xB0,当这段字节流被错误使用Windows-1252编码解码时,0xC2会被解析为字符Â,0xB0会被解析为°,最终就生成了°的乱码组合。
  • 原有代码逻辑完全错误:将已经乱码的字符串再次用Windows-1252转字节后执行编码转换,相当于给错误内容叠加了额外编码操作,无法得到正常结果。
修复代码

不需要调用Encoding.Convert,直接把乱码字符串用Windows-1252转回原始字节流,再用UTF-8解码即可:

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Encoding w1252 = Encoding.GetEncoding(1252);
// 乱码字符串转回原始字节流
byte[] originalBytes = w1252.GetBytes(htmlNormalized);
// 用UTF-8直接解码原始字节流
htmlNormalized = Encoding.UTF8.GetString(originalBytes);

编码修正完成后,如果需要输出为你期望的数值序列格式,可额外提取字符串中的数值,再按要求重新拼接即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:45:02