Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6662257
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: 嵌入式

2011-09-04 22:13:07

  1. public static string GetEncodingString(string srcString)
  2.         {
  3.             Encoding e8859Encode = Encoding.GetEncoding("iso-8859-1");
  4.             Encoding srcEncode = Encoding.GetEncoding("gb2312");
  5.             Encoding dstEncode = Encoding.Unicode;
  6.             byte[] srcBytes = e8859Encode.GetBytes(srcString);//用iso-8859-1去转换源字符串

  7.             byte[] dstBytes = Encoding.Convert(srcEncode, dstEncode, srcBytes);//但是,是从gb2312转到unicode的

  8.             char[] dstChars = new char[dstEncode.GetCharCount(dstBytes, 0, dstBytes.Length)];
  9.             dstEncode.GetChars(dstBytes, 0, dstBytes.Length, dstChars, 0);
  10.             return new string(dstChars);
  11.             
  12.         }
具体原因我推测是因为数据过来是ISO-8859-1,但.Net地层格处理成了Gb2312了,所以需要通过两种编码转换成Unicode才能正常显示,听说在Java中只要new String(s.getBytes("ISO-8859-1"),"gb2312");就OK了。

转换成ISO
  1. public static string GetISOEncodedString(string srcString)
  2.         {
  3.             if(bDBInfor) {
  4.                 Encoding e8859Encode = Encoding.GetEncoding("iso-8859-1");
  5.                 Encoding srcEncode = Encoding.Unicode;
  6.                 Encoding dstEncode = Encoding.GetEncoding("gb2312");
  7.                 byte[] srcBytes = srcEncode.GetBytes(srcString);//用Unicode去转换源字符串

  8.                 byte[] dstBytes = Encoding.Convert(srcEncode, dstEncode, srcBytes);//但是,是从gb2312转到unicode的

  9.                 char[] dstChars = new char[e8859Encode.GetCharCount(dstBytes, 0, dstBytes.Length)];
  10.                 e8859Encode.GetChars(dstBytes, 0, dstBytes.Length, dstChars, 0);
  11.                 return new string(dstChars);
  12.             }
  13.             return srcString;
  14.         }
阅读(2592) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~