Asp.net把UTF-8编码转换为GB2312编码

来源:网络整理 责任编辑:栏目编辑 发表时间:2013-07-01 17:19 点击:
      最近在做的系统中,碰到了一个问题,交易系统采用的UTF-8编码,而一些支持系统使用的是GB2312编码。
  
  不同编码的页面、脚本之间互相引用,就会产生乱码的问题,解决方法就是统一成一种编码。
  asp.net 中,如果要修改输出页面的编码,可以通过修改web.config中以下配置信息
  
  
  <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
  以上只是修改整体的默认编码,如果只有某个页的编码需要修改,ASP.net 中则可以简单的使用下面代码:
  
  
  注:加到Page_Load()事件下面就可以了
  Encoding gb2312 = Encoding.GetEncoding("gb2312");
  Response.ContentEncoding = gb2312;
  在非ASP.net 应用中,可能你读到的数据是UTF-8编码,但是你要转换为GB2312编码,则可以参考以下代码:
  
  
  
  string utfinfo = "document.write(\"alert('你好么??');\");";
  string gb2312info = string.Empty;
  
  Encoding utf8 = Encoding.UTF8;
  Encoding gb2312 = Encoding.GetEncoding("gb2312");
  
  // Convert the string into a byte[].
  byte[] unicodeBytes = utf8.GetBytes(utfinfo);
  // Perform the conversion from one encoding to the other.
  byte[] asciiBytes = Encoding.Convert(utf8, gb2312, unicodeBytes);
  
  // Convert the new byte[] into a char[] and then into a string.
  // This is a slightly different approach to converting to illustrate
  // the use of GetCharCount/GetChars.
  char[] asciiChars = new char[gb2312.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
  gb2312.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
  gb2312info = new string(asciiChars);
  
  当然,其他各种编码之间的转换,跟上述代码也类似的,就不描述了。
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • C#高级编程:数据库连接[1]
    • asp.net 设置GridView的选中行的实现代码
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET&#160;GridView列表代码示例
    • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1