c# 杏和接口service调试出现问号????????+????乱码如何解决 杏和接口service调试出现问号????????+????乱码如何解决 <TEST_ORDER_NAME>????????+????</TEST_ORDER_NAME>请问 c# 有什么好解决方案? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 WebReference.service bll = new WebReference.service(); string dataGBK = Encoding.GetEncoding("gb2312").GetString(Encoding.UTF8.GetBytes(bll.XHLisWebserviceFun(Data))); WebReference.service bll = new WebReference.service(); string dataGBK = Encoding.GetEncoding("gbk").GetString(Encoding.UTF8.GetBytes(bll.XHLisWebserviceFun(Data))); WebReference.service bll = new WebReference.service(); string dataGBK = Encoding.GetEncoding("utf-8").GetString(Encoding.UTF8.GetBytes(bll.XHLisWebserviceFun(Data)));均显示乱码 c#调用delphi开发的webservice接口,中文返回值为乱码(一个汉字返回???) 有的说是delphi 在编写 web server的时候 编码问题;主要设置控件 HttpSoapDispatcher 中的 option 将 soUTF8InHeader = True和 soDontSendEmptyNode = True 设置一下就可以了 string dataGBK = Encoding.GetEncoding("gb2312").GetString(Encoding.UTF8.GetBytes(bll.XHLisWebserviceFun(Data)));并不能实现你将 utf-8 编码的数据转换成 gb2312 编码的数据的目的否则 Encoding.Convert 就形同虚设了为了便于探察你所遇到的问题,你最好贴出 bll.XHLisWebserviceFun(Data) 的 base64 编码后的内容 //------------------------------------------------------------------------------// <auto-generated>// 此代码由工具生成。// 运行时版本:2.0.50727.8762//// 对此文件的更改可能会导致不正确的行为,并且如果// 重新生成代码,这些更改将会丢失。// </auto-generated>//------------------------------------------------------------------------------// // 此源代码由 wsdl 自动生成, Version=2.0.50727.1432。// namespace Demo { using System.Xml.Serialization; using System.Web.Services; using System.ComponentModel; using System.Web.Services.Protocols; using System; using System.Diagnostics; using System.Text; /// <res/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Web.Services.WebServiceBindingAttribute(Name="IXhlisWebservicebinding", Namespace="http://tempuri.org/")] public partial class IXhlisWebserviceservice : System.Web.Services.Protocols.SoapHttpClientProtocol { private System.Threading.SendOrPostCallback XHLisWebserviceFunOperationCompleted; /// <res/> public IXhlisWebserviceservice() { this.Url = "http://192.168.203.226:8880/Project2.dll/soap/IXhlisWebservice"; } /// <res/> public event XHLisWebserviceFunCompletedEventHandler XHLisWebserviceFunCompleted; /// <res/> [System.Web.Services.Protocols.SoapRpcMethodAttribute("urn:WebserviceDemoIntf-IXhlisWebservice#XHLisWebserviceFun", RequestNamespace="urn:WebserviceDemoIntf-IXhlisWebservice", ResponseNamespace="urn:WebserviceDemoIntf-IXhlisWebservice")] [return: System.Xml.Serialization.SoapElementAttribute("return")] public string XHLisWebserviceFun(string Data) { object[] results = this.Invoke("XHLisWebserviceFun", new object[] { Data}); string strInfo = ((string)(results[0])); // string dataGBK = Encoding.GetEncoding("iso-8859-1").GetString(Encoding.UTF8.GetBytes(strInfo + "我是")); //return ConvertISO88591ToEncoding(strInfo, Encoding.GetEncoding("GB2312")) + "dd" + dataGBK; return strInfo; } private string ecodingJava_C(String str) { Encoding utf8 = Encoding.UTF8; Encoding defaultCode = Encoding.Default; byte[] utf8Bytes = defaultCode.GetBytes(str); byte[] defaultBytes = Encoding.Convert(utf8, defaultCode, utf8Bytes); char[] defaultChars = new char[defaultCode.GetCharCount(defaultBytes, 0, defaultBytes.Length)]; defaultCode.GetChars(defaultBytes, 0, defaultBytes.Length, defaultChars, 0); return new string(defaultChars); } private static string ConvertISO88591ToEncoding(string srcString, Encoding dstEncode) { String sResult; Encoding ISO88591Encoding = Encoding.GetEncoding("ISO-8859-1"); Encoding GB2312Encoding = Encoding.GetEncoding("GB2312"); //这个地方很特殊,必须利用GB2312编码 byte[] srcBytes = ISO88591Encoding.GetBytes(srcString); //将原本存储ISO-8859-1的字节数组当成GB2312转换成目标编码(关键步骤) byte[] dstBytes = Encoding.Convert(GB2312Encoding, dstEncode, srcBytes); char[] dstChars = new char[dstEncode.GetCharCount(dstBytes, 0, dstBytes.Length)]; dstEncode.GetChars(dstBytes, 0, dstBytes.Length, dstChars, 0);//利用char数组存储字符 sResult = new string(dstChars); return sResult; } /// <res/> public System.IAsyncResult BeginXHLisWebserviceFun(string Data, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("XHLisWebserviceFun", new object[] { Data}, callback, asyncState); } /// <res/> public string EndXHLisWebserviceFun(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((string)(results[0])); } /// <res/> public void XHLisWebserviceFunAsync(string Data) { this.XHLisWebserviceFunAsync(Data, null); } /// <res/> public void XHLisWebserviceFunAsync(string Data, object userState) { if ((this.XHLisWebserviceFunOperationCompleted == null)) { this.XHLisWebserviceFunOperationCompleted = new System.Threading.SendOrPostCallback(this.OnXHLisWebserviceFunOperationCompleted); } this.InvokeAsync("XHLisWebserviceFun", new object[] { Data}, this.XHLisWebserviceFunOperationCompleted, userState); } private void OnXHLisWebserviceFunOperationCompleted(object arg) { if ((this.XHLisWebserviceFunCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.XHLisWebserviceFunCompleted(this, new XHLisWebserviceFunCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } /// <res/> public new void CancelAsync(object userState) { base.CancelAsync(userState); } } /// <res/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")] public delegate void XHLisWebserviceFunCompletedEventHandler(object sender, XHLisWebserviceFunCompletedEventArgs e); /// <res/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class XHLisWebserviceFunCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { private object[] results; internal XHLisWebserviceFunCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) { this.results = results; } /// <res/> public string Result { get { this.RaiseExceptionIfNecessary(); return ((string)(this.results[0])); } } }} 知道一个链接,如何做到防盗链 急求SQL查询 关于使用BindingSource的AddNew()方法来新增记录 关于字节型byte[]的若干问题 编码转换的问题 通讯方面的问题 想实现动态获取本机上某端口的数据?如何做? 跪求 大神帮忙用C#写一段代码啊 娱乐党——c#自编记牌器求助与讨论 我是新手,问两个问题 求教一个C#字符串截取拼接问题 怎么给WINFORM应用程序的快捷方式定义快捷键,是否能在程序上实现?
string dataGBK = Encoding.GetEncoding("gb2312").GetString(Encoding.UTF8.GetBytes(bll.XHLisWebserviceFun(Data))); WebReference.service bll = new WebReference.service();
string dataGBK = Encoding.GetEncoding("gbk").GetString(Encoding.UTF8.GetBytes(bll.XHLisWebserviceFun(Data)));
WebReference.service bll = new WebReference.service();
string dataGBK = Encoding.GetEncoding("utf-8").GetString(Encoding.UTF8.GetBytes(bll.XHLisWebserviceFun(Data)));均显示乱码
主要设置控件 HttpSoapDispatcher 中的 option 将 soUTF8InHeader = True
和 soDontSendEmptyNode = True 设置一下就可以了
并不能实现你将 utf-8 编码的数据转换成 gb2312 编码的数据的目的
否则 Encoding.Convert 就形同虚设了为了便于探察你所遇到的问题,你最好贴出 bll.XHLisWebserviceFun(Data) 的 base64 编码后的内容
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:2.0.50727.8762
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------//
// 此源代码由 wsdl 自动生成, Version=2.0.50727.1432。
//
namespace Demo {
using System.Xml.Serialization;
using System.Web.Services;
using System.ComponentModel;
using System.Web.Services.Protocols;
using System;
using System.Diagnostics;
using System.Text;
/// <res/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="IXhlisWebservicebinding", Namespace="http://tempuri.org/")]
public partial class IXhlisWebserviceservice : System.Web.Services.Protocols.SoapHttpClientProtocol {
private System.Threading.SendOrPostCallback XHLisWebserviceFunOperationCompleted;
/// <res/>
public IXhlisWebserviceservice() {
this.Url = "http://192.168.203.226:8880/Project2.dll/soap/IXhlisWebservice";
}
/// <res/>
public event XHLisWebserviceFunCompletedEventHandler XHLisWebserviceFunCompleted;
/// <res/>
[System.Web.Services.Protocols.SoapRpcMethodAttribute("urn:WebserviceDemoIntf-IXhlisWebservice#XHLisWebserviceFun", RequestNamespace="urn:WebserviceDemoIntf-IXhlisWebservice", ResponseNamespace="urn:WebserviceDemoIntf-IXhlisWebservice")]
[return: System.Xml.Serialization.SoapElementAttribute("return")]
public string XHLisWebserviceFun(string Data) {
object[] results = this.Invoke("XHLisWebserviceFun", new object[] {
Data});
string strInfo = ((string)(results[0]));
// string dataGBK = Encoding.GetEncoding("iso-8859-1").GetString(Encoding.UTF8.GetBytes(strInfo + "我是"));
//return ConvertISO88591ToEncoding(strInfo, Encoding.GetEncoding("GB2312")) + "dd" + dataGBK; return strInfo;
}
private string ecodingJava_C(String str)
{
Encoding utf8 = Encoding.UTF8;
Encoding defaultCode = Encoding.Default;
byte[] utf8Bytes = defaultCode.GetBytes(str);
byte[] defaultBytes = Encoding.Convert(utf8, defaultCode, utf8Bytes);
char[] defaultChars = new char[defaultCode.GetCharCount(defaultBytes, 0, defaultBytes.Length)];
defaultCode.GetChars(defaultBytes, 0, defaultBytes.Length, defaultChars, 0);
return new string(defaultChars);
}
private static string ConvertISO88591ToEncoding(string srcString, Encoding dstEncode)
{ String sResult; Encoding ISO88591Encoding = Encoding.GetEncoding("ISO-8859-1");
Encoding GB2312Encoding = Encoding.GetEncoding("GB2312"); //这个地方很特殊,必须利用GB2312编码
byte[] srcBytes = ISO88591Encoding.GetBytes(srcString); //将原本存储ISO-8859-1的字节数组当成GB2312转换成目标编码(关键步骤)
byte[] dstBytes = Encoding.Convert(GB2312Encoding, dstEncode, srcBytes); char[] dstChars = new char[dstEncode.GetCharCount(dstBytes, 0, dstBytes.Length)]; dstEncode.GetChars(dstBytes, 0, dstBytes.Length, dstChars, 0);//利用char数组存储字符
sResult = new string(dstChars);
return sResult; } /// <res/>
public System.IAsyncResult BeginXHLisWebserviceFun(string Data, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("XHLisWebserviceFun", new object[] {
Data}, callback, asyncState);
}
/// <res/>
public string EndXHLisWebserviceFun(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((string)(results[0]));
}
/// <res/>
public void XHLisWebserviceFunAsync(string Data) {
this.XHLisWebserviceFunAsync(Data, null);
}
/// <res/>
public void XHLisWebserviceFunAsync(string Data, object userState) {
if ((this.XHLisWebserviceFunOperationCompleted == null)) {
this.XHLisWebserviceFunOperationCompleted = new System.Threading.SendOrPostCallback(this.OnXHLisWebserviceFunOperationCompleted);
}
this.InvokeAsync("XHLisWebserviceFun", new object[] {
Data}, this.XHLisWebserviceFunOperationCompleted, userState);
}
private void OnXHLisWebserviceFunOperationCompleted(object arg) {
if ((this.XHLisWebserviceFunCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.XHLisWebserviceFunCompleted(this, new XHLisWebserviceFunCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <res/>
public new void CancelAsync(object userState) {
base.CancelAsync(userState);
}
}
/// <res/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")]
public delegate void XHLisWebserviceFunCompletedEventHandler(object sender, XHLisWebserviceFunCompletedEventArgs e);
/// <res/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class XHLisWebserviceFunCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal XHLisWebserviceFunCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <res/>
public string Result {
get {
this.RaiseExceptionIfNecessary();
return ((string)(this.results[0]));
}
}
}
}