C#与PHP制作WEBSERVICE接口时,部分中文是乱码问题的分析与解决
2012-01-10 09:07
771 查看
PHP那边是GB2312编码,而C#这边的默认编码是UTF-8,WEBSERVICE发送数据是以UTF-8发送的
问题来了,如果GB2312转为UTF-8,不管是显式还是隐式,都会出现乱码
于是将GB2312转为BASE64,收到以后再转回GB2312,才解决
这样做,实际上,数据经历了 GB2312--BASE64--UTF8--发送--接收--UTF8--BASE64-GB2312 这么个转换过程,因为BASE64只有英文字符,所以与UTF8互转不会出现乱码,而BASE64与GB2312互转,也不会出现乱码
编解码程序如下:
public static string DecodeBase64(string code)//解码 base64->gb2312
{
string sdecode = "";
byte[] sconverted = Convert.FromBase64String(code);
try
{
//sdecode = ASCIIEncoding.UTF8.GetString(sconverted); --这是转UTF-8
sdecode = ASCIIEncoding.GetEncoding("gb2312").GetString(sconverted);//这是转gb2312
}
catch
{
sdecode = code;
}
return sdecode;
}
public static string EncodeBase64(string code)//编码
{
string sencode = "";
byte[] sconverted = Encoding.Default.GetBytes(code);
try
{
sencode = Convert.ToBase64String(sconverted);
}
catch
{
sencode = code;
}
return sencode;
}
问题来了,如果GB2312转为UTF-8,不管是显式还是隐式,都会出现乱码
于是将GB2312转为BASE64,收到以后再转回GB2312,才解决
这样做,实际上,数据经历了 GB2312--BASE64--UTF8--发送--接收--UTF8--BASE64-GB2312 这么个转换过程,因为BASE64只有英文字符,所以与UTF8互转不会出现乱码,而BASE64与GB2312互转,也不会出现乱码
编解码程序如下:
public static string DecodeBase64(string code)//解码 base64->gb2312
{
string sdecode = "";
byte[] sconverted = Convert.FromBase64String(code);
try
{
//sdecode = ASCIIEncoding.UTF8.GetString(sconverted); --这是转UTF-8
sdecode = ASCIIEncoding.GetEncoding("gb2312").GetString(sconverted);//这是转gb2312
}
catch
{
sdecode = code;
}
return sdecode;
}
public static string EncodeBase64(string code)//编码
{
string sencode = "";
byte[] sconverted = Encoding.Default.GetBytes(code);
try
{
sencode = Convert.ToBase64String(sconverted);
}
catch
{
sencode = code;
}
return sencode;
}
相关文章推荐
- C#访问MySQL数据库时中文乱码问题分析及解决
- (转)Delphi 调用C#编写的WebService 参数为Null解决方法 附中文乱码问题
- php中文乱码问题分析及解决办法
- C#访问数据库时中文乱码问题分析及解决
- php如何分割字符串?php mb_substr分割字条串,解决中文乱码问题,支持分割中文! (转)
- 常见php与mysql中文乱码问题解决办法
- <util:properties/>加载的配置文件中有中文导致乱码,如何通过分析源码解决问题?
- php使用NuSoap调用java/C# webservice的中文乱码问题
- Code:Blocks 中文乱码问题原因分析和解决方法!
- 解决PHP在IE浏览器下载文件,中文文件名乱码问题
- 解决httpurlconnection获取网页数据部分中文乱码问题
- php中文乱码问题以及页面显示部分后台代码问题
- PHP向MYSQL插入中文乱码问题解决方法
- 【原创】[C#]解决 vs2003 升级 vs2005 中文乱码问题
- 解决php接收shell返回的结果中文乱码问题
- PHP - 解决中文乱码问题
- Windows下利用Gvim写PHP产生中文乱码问题解决方法
- php 读取xml的方法 (iconv解决中文乱码问题)
- Code::Blocks 中文乱码问题原因分析和解决方法