Übertragen von erweiterten ASCII-Zeichen mit unbekannter Kodierung Twisted XMLRPC von C #
Frage
Im Grunde möchte ich eine Zeichenfolge übergeben, den spanischen Text enthält, der in einem von mehreren Codierungen (Latin-1, CP-1252, oder UTF-8 um einige zu nennen) sein könnte. Sobald es an die XMLRPC bekommt kann ich die Codierung erkennen, aber ich werde es nicht vorher wissen. C #, scheint standardmäßig außerhalb von ASCII alle Zeichen zu töten. Ich habe, um das Problem durch Base64-kodiert der Zeichenfolge bekommen, aber ich würde wirklich gerne das nicht tun.
Ich bin mit CookComputing.XmlRpc ... Hier ist ein Code-Snippet meiner Schnittstelle:
public interface ISpanishAnalyzer
{
[XmlRpcMethod("analyzeSpanishString")]
int analyzeSpanishString(string text);
}
Jede Hilfe wäre sehr geschätzt. Dank!
Lösung
Ich glaube nicht, es ist wirklich ein besserer Weg, dann Base64-Kodierung. Solange Sie die Codierung nicht kennen, haben Sie keine andere Möglichkeit, als es als Byte-Array zu behandeln. Die einzige Änderung, würde ich vorschlagen, ist dies durch die Verwendung eines byte [] Parameter anstelle einer Zeichenfolge und lassen die XmlRpc Bibliothek explizit machen kümmern sich um die Base64-Codierung (unter der Annahme, dass es diese unterstützt).