2017-02-07 8 views
0

Одна схема кодирования дает ã as a%CC%83, а другая дает ã as %C3%a3.Различные результаты кодирования для одного и того же символа UTF-8 для ã

В чем разница между этими 2? Я отлаживал это и обнаружил, что a%CC%83 на самом деле 2 символа. Один для ~, который составляет %CC%83, и один для a. Но как можно получить эту кодировку?

ответ

1

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

https://en.wikipedia.org/wiki/Precomposed_character

+0

Но, композиция не работает для нас. Как отключить это. Я хочу, чтобы кодировка была «единственным символом» –

+0

@VivekVardhan, какой язык программирования вы используете? Вы должны выполнить нормализацию Unicode, чтобы иметь предварительно скомпонованные символы, но обратите внимание, что не все разложенные символы имеют свои предварительно согласованные эквиваленты. –

+0

Мы получаем запрос от приложения Android, который кодирует таким образом. И запрос к Lucene не дает результата с композиционной кодировкой, но дает правильные результаты для нормального кодирования (одиночная кодировка символов), но для того же ios отправляет однозначное кодированное значение –