以下两个编码字符串有什么区别?
%D0%9E%D0%BA%D0%B6%D1%8D%D0%B7
和
%26%231055%3B%26%231088%3B%26%231080%3B%26%231074%3B%26%231077%3B%26%231090%3B
我正在尝试URL将俄语文本“Привет”编码到上面的第二个编码字符串中(W3Schools encoder正确执行),但我使用的URL编码器一直给我上面的第一个编码字符串。我正在使用W3联盟的URLUTF8Encoder.java。当我在需要J2ME的移动平台上工作时,我必须使用这个。
谢谢!
答案 0 :(得分:6)
w3schools的URL编码器完全没错。 %D0%9E%D0%BA%D0%B6%D1%8D%D0%B7
完全有效。这也是我做的事情
String encoded = URLEncoder.encode("Привет", "UTF-8");
当我对w3schools的答案进行URL解码时如下
String decoded = URLDecoder.decode("%26%231055%3B%26%231088%3B%26%231080%3B%26%231074%3B%26%231077%3B%26%231090%3B", "UTF-8");
然后我得到的Привет
正好是那些俄文字符,但后来又转换为XML entities。
那个w3schools网站顺便说一句,与W3联盟无关。另请参阅w3fools。
答案 1 :(得分:3)
您的字符串“Привет”编码为:
%D0%9E
%D0%BA
%D0%B6
%D1%8D
%D0%B7
第二个字符串似乎在url-encoding之前被转换为HTML实体:
%26%231055%3B
%26%231088%3B
%26%231080%3B
%26%231074%3B
%26%231077%3B
%26%231090%3B
%26
为&
,%23
为#
,%3B
为;
:
П
р
и
в
е
т