UTF8转GB2312

本文探讨了一段用于将UTF-8编码转换为GB2312编码的C#代码,尽管尝试多种方法仍未能成功转换。最终通过直接设置页面编码为GB2312解决了跨系统编码兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司有个项目需要跟别的系统互通,新做的是utf-8编码的,另一个是gb2312的,需要把utf-8编码转为gb2312。写了下面的代码:
        public string UTF8toGB2312(string str)
        
{
            
string utfStr = str;
            
byte[] utfBytes = System.Text.Encoding.UTF8.GetBytes(utfStr);
            
byte[] gbBytes = System.Text.Encoding.Convert(System.Text.Encoding.UTF8,System.Text.Encoding.GetEncoding("gb2312"),utfBytes);
            
char[] asciiChars = new char[System.Text.Encoding.GetEncoding("gb2312").GetCharCount(gbBytes, 0, gbBytes.Length)];
            System.Text.Encoding.GetEncoding(
"gb2312").GetChars(gbBytes, 0, gbBytes.Length, asciiChars, 0);
            
string gbStr = new string(asciiChars);
            
return gbStr;
        }
可惜转来转去不成功啊,郁闷了~
最后没办法,把新做的这一页单独转成了gb2312的,在load里添加:
if (!IsPostBack)
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");

各位高人帮忙看看上面的那段代码怎么不成功呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值