Строка декодирования Java, экранированная Actionscript - PullRequest
2 голосов
/ 02 августа 2011

У меня есть среда, где строки в процентах кодируются функцией Actionscript escape() и затем передаются в Java для декодирования.

У меня есть, например, тестовая строка "m é".
Он передается экранированию Actionscript (), который выдает "m%20%E9"
Когда я пытаюсь декодировать его с помощью Java:

URLDecoder.decode("m%20%E9", "UTF-8")

Результат:

"m ?"

% E9 кажется точкой Unicode для символа "é", но это не совсем понятно Java-декодированием.
Есть ли способ декодировать в Java строки, закодированные с помощью escape-кода Actionscript? Какой escape-формат используют эти функции, поскольку они кажутся разными?

Заранее спасибо за любую помощь,
Paolo

1 Ответ

10 голосов
/ 02 августа 2011

m%20%E9 - это , а не UTF-8.Это легко увидеть, потому что любому символу вне диапазона ASCII (т. Е. 0-127) потребуется не менее 2 байтов в UTF-8.Поскольку %20 является пробелом, для него остается только %E9.

А на самом деле это U + 00E9 .Кодировка отображает 1: 1 в Unicode в нижних 255 символах: ISO-8859-1 .

Поэтому правильный способ декодирования этого будет такой:

...