Передача расширенных символов ascii с неизвестной кодировкой в ​​Twisted XMLRPC из C#

StackOverflow https://stackoverflow.com/questions/127599

  •  02-07-2019
  •  | 
  •  

Вопрос

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top