Есть ли кроссплатформенный метод для кодирования строки в другую строку без пробелов, а затем декодирования обратно? - PullRequest
0 голосов
/ 09 марта 2012

Я пытаюсь передать блок текста в систему, которой я не владею, которая передаст данные в систему, которой я владею.

К сожалению, когда первая система взаимодействует со второй системой, она использует формат TSV. Таким образом, мне интересно, есть ли удобный способ взять мой блок текста и кодировать его в формате ASCII без каких-либо пробелов (в основном это переводы строк и табуляции, конечно), а затем декодировать его.

Когда я делаю кодирование, я работаю в C #. Когда я делаю декодирование, я работаю в Javascript.

Я понимаю, что могу написать свой собственный код, чтобы по существу "вручную" выполнить кодирование и декодирование, создав свою собственную схему, но мне интересно, существует ли она уже для этой цели.

Ответы [ 2 ]

2 голосов
/ 09 марта 2012

Вы можете попробовать использовать HttpUtility.UrlEncode (строка) или Uri.EscapeDataString (строка) , что кодирует процент любой пробел в переданном текст (а также другие специальные символы, что означает, что закодированный текст может быть намного больше оригинала).

На стороне javascript вы можете использовать decodeURIComponent (string) , чтобы декодировать его обратно в исходный текст.

2 голосов
/ 09 марта 2012

Одна опция, которая взорвала бы размер ваших данных, но была бы действительно простой в реализации: UTF-8 кодирует весь текст, base64-кодирует это:

byte[] utf8 = Encoding.UTF8.GetBytes(text);
string base64 = Convert.ToBase64(utf);

Этоне содержит пробелов и может быть преобразован обратно.Он будет значительно больше исходной строки и нечитабелен ... но он будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...