我哪里做错了?
我从服务器收到一个字符串,值为"%u0419%u043E"。
我试图将其转换为普通字符串,但是我看到了中文字符。这是错误的,因为传入的字母是西里尔字母。
代码:
// String test = ""%u0419%u043E"; <--- this is Йо ( cyrillic )
byte[] test = { (byte) 0x25, (byte) 0x75, (byte)0x30, (byte)0x34, (byte)0x31, (byte) 0x39,(byte) 0x25, (byte) 0x75, (byte)0x30, (byte)0x34, (byte)0x33, (byte) 0x45};
String aaa = new String(test, "UTF-16");
aaa = new String(test, "UTF-8");
aaa = new String(test, "ISO-8859-5");
这张图片展示了我的工作内容:
%XX
似乎是标准的 URL 编码,因此您可以使用java.net.URLDecoder.decode(someString, "UTF-8")
。如果字符串同时包含%uXXXX
和%XX
,则必须先进行自定义解码(它将不会影响 URL 编码的字符)。 - bwt