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

如何在C#后端将€转换为欧元符号€?

解决�转€符号的问题

问题根源

€并不是标准HTML/Unicode实体,它是Windows-1252编码中€符号对应的字节值(0x80)。ASPX页面能正常显示,是因为页面编码大概率设置为Windows-1252,浏览器会自动按该编码解析这个字节;而HttpUtility.HtmlDecode是遵循标准Unicode规则处理的,标准里€对应一个不可见的控制字符,所以无法解析成€。

解决方法

方法1:修改映射字典(推荐)

直接把字典中EUR对应的"€"替换为标准HTML实体"€",这是€符号的官方Unicode实体编码,前端后端都能正常解析:

"EUR", "€"
"GBP", "£"

方法2:C#后端手动解码(无法修改字典时用)

如果不能改动原有字典,可在C#中把€按Windows-1252编码解码:

// 假设从字典中取出的EUR编码是encodedStr
string encodedStr = "€";
// 提取十六进制数值部分
string hex = encodedStr.TrimStart('&','#','x').TrimEnd(';');
// 转成字节后用Windows-1252解码
byte[] byteArr = new byte[] { Convert.ToByte(hex, 16) };
string euroSymbol = Encoding.GetEncoding(1252).GetString(byteArr);

方法3:自定义实体映射

可以在解码前添加自定义替换规则,直接把€替换为€:

string decodedStr = HttpUtility.HtmlDecode(originalStr).Replace("€", "€");

内容的提问来源于stack exchange,提问作者Mr.B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:24:58