Передача расширенных символов ascii с неизвестной кодировкой в ​​Twisted XMLRPC из C # - PullRequest
1 голос
/ 24 сентября 2008

В основном я хочу передать строку, которая содержит текст на испанском языке, который может быть в одной из нескольких кодировок (Latin-1, CP-1252 или UTF-8 и многие другие). Как только он попадает в XMLRPC, я могу определить кодировку, но до этого не узнаю. C # по умолчанию, кажется, убивает любые символы за пределами ASCII. Я справился с этой проблемой с помощью base64-кодирования строки, но мне бы очень хотелось НЕ делать этого.

Я использую CookComputing.XmlRpc ... Вот фрагмент кода моего интерфейса:

public interface ISpanishAnalyzer
{
    [XmlRpcMethod("analyzeSpanishString")]
    int analyzeSpanishString(string text);
}

Любая помощь будет оценена. Спасибо!

1 Ответ

2 голосов
/ 24 сентября 2008

Я не думаю, что есть действительно лучший способ, чем кодирование base64. Пока вы не знаете кодировку, у вас нет другой возможности обрабатывать ее как байтовый массив. Единственное изменение, которое я хотел бы предложить, - это сделать это явно, используя параметр byte [] вместо строки и позволяя библиотеке XmlRpc позаботиться о кодировке base64 (при условии, что она это поддерживает).

...