Передача расширенных символов ascii с неизвестной кодировкой в Twisted XMLRPC из C#
Вопрос
По сути, я хочу передать строку, содержащую текст на испанском языке, который может быть в одной из нескольких кодировок (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 (при условии, что она поддерживает это).