c# 调用php webservice 汉字乱码解决方案 php调用c# webservice 汉字乱码解决方案(亲测)
来源:互联网 发布:php 设置时区 编辑:程序博客网 时间:2024/05/01 21:14
基于soa架构去实现EAI 经常会碰到传递汉字乱码问题。如何解决呢?请看下文——
PHP那边是通达OA gbk编码,而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;
}
private void button1_Click(object sender, EventArgs e)
{
string dept_name = EncodeBase64("建设部");
cs2php.PHP.EventWSDL sc = new PHP.EventWSDL();
sc.addDept("12345687", dept_name, "7895");
}
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# 调用php webservice 汉字乱码解决方案 php调用c# webservice 汉字乱码解决方案(亲测)
- PHP调用.net的webservice 中文乱码解决方案
- C# 调用PHP WebService
- PHP 调用C# WebService
- php汉字乱码的一些解决方案
- php调用oracle,汉字乱码的解决
- php使用NuSoap调用java/C# webservice的中文乱码问题
- c# .net 调用php 的webservice接口
- java调用.net的webService出现乱码的解决方案
- delphi调用C#的web service汉字乱码的解决方法
- php输出汉字乱码
- 解决Java调用php web webService 中文参数乱码
- php 调用webservice ,返回数据 中文乱码问题
- c#调用Java的webservice出现身份验证失败的解决方案
- JSP汉字乱码解决方案.txt
- url传递汉字乱码解决方案
- 网站页面汉字乱码解决方案
- 汉字乱码的终极解决方案
- linux下PasswordField暂时无法输入
- c#多线程之monitor和lock
- “#”山
- V4L2视频采集的基本流程
- 四十以后的醒悟
- c# 调用php webservice 汉字乱码解决方案 php调用c# webservice 汉字乱码解决方案(亲测)
- MySQL索引类型一览 让MySQL高效运行起来
- *号直角三角形程序报告
- tr命令常用例子
- 球1!+2!++++n!
- 调用函数求组合数(第十二周上机任务)
- 3dmax 教程 + Unity 3d教程 + BodyPaint教程
- 调用函数输出星号图
- 使用Apache的Proxy模块实现对被代理网站的访问