Строковое кодирование - PullRequest
       0

Строковое кодирование

1 голос
/ 11 сентября 2010

Я проверяю наличие файла в резервной копии XML моей библиотеки iTunes.

Как мне изменить эту строку

E:\Entertainment\Music\Latin\100% Azucar The Best of Celia Cruz & La Sonora Matancera/08 Mi Soncito.mp3

к этому

E:/Entertainment/Music/Latin/100%25%20Azucar%20%20The%20Best%20of%20Celia%20Cruz%20&%20La%20Sonora%20Matancera/08%20Mi%20Soncito.mp3

Изменения:

  1. Пробел становится% 20
  2. Обратная косая черта становится прямой косой чертой
  3. % (знак процента) стал% 25

Ответы [ 5 ]

7 голосов
/ 11 сентября 2010

Похоже на две разные вещи:

1) Замена обратной косой черты на прямую косую черту.

2) Применение URI-кодировки.

Первое очевидно.Во-вторых, у вас есть несколько вариантов, включая Uri.EscapeDataString, Uri.EscapeUriString, HttpUtility.UrlEncode и HttpUtility.UrlPathEncode.

edit

3) Как заметил ВилксПохоже, что HtmlEncoding в части имени файла.

Возможно, лучший ответ - использовать класс Uri для нарезки и нарезки частей, кодируя их по мере необходимости.

4 голосов
/ 11 сентября 2010

Я думаю, что нашел ключевую часть его проблемы.Там вроде как спрятано первое предложение и все такое, так что никто не заметил этого.XD

Я проверяю наличие файла в резервной копии XML моей библиотеки iTunes.

Мне кажется, что мы имеем дело с каким-то мошенническим iTunes-Кодировка XML, которая немного испортилась где-то на линии.Мой совет - пойти другим путем - декодировать строку iTunes (сначала через HtmlDecode, затем UrlDecode), а затем сравнить ее с исходной строкой, которую вы ищете.Это должно быть в состоянии справиться с большинством неправильных кодировок iTunes.

2 голосов
/ 11 сентября 2010

Очень простой маршрут:

filepath.Replace("\", "/").Replace("%", "%25").Replace(" ", "%20").Replace("&", "&")

0 голосов
/ 11 сентября 2010

Вы делаете это с Uri.EscapeDataString() статическим методом. Супер просто.

0 голосов
/ 11 сентября 2010

% 20 означает пробел.я вижу, что вы хотите сделать что-то еще с этой строкой, поэтому могу я спросить вас, какие инструменты вы предпочитаете использовать?регулярное выражение?строка заменяет?

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