从C#将具有未知编码的扩展ascii字符传输到Twisted XMLRPC
时间:2020-03-06 14:40:01 来源:igfitidea点击:
基本上,我想传递一个包含西班牙语文本的字符串,该文本可能采用几种编码之一(Latin-1,CP-1252或者UTF-8等)。一旦到达XMLRPC,我就可以检测到编码,但是在那之前我还不知道。默认情况下,C#似乎会杀死ASCII之外的任何字符。我已经通过对字符串进行base64编码解决了这个问题,但是我真的很乐意不这样做。
我正在使用CookComputing.XmlRpc ...这是我的界面的代码片段:
public interface ISpanishAnalyzer { [XmlRpcMethod("analyzeSpanishString")] int analyzeSpanishString(string text); }
任何帮助,将不胜感激。谢谢!
解决方案
我认为没有比base64编码更好的方法。只要我们不知道编码,就没有其他可能性将其作为字节数组进行处理。我建议的唯一更改是通过使用byte []参数而不是字符串来使此内容明确,并让XmlRpc库处理base64编码(假设它支持此功能)。