|
0
|
| Harold L. Brown · 技术社区 · 11 年前 |
|
|
1
1
Java使用UTF-16进行自己的编码:大多数字符将使用16位,但也有一些例外。当一个字符不能在UTF-16中编码时,它将使用高代理(1个字符)和低代理(1字符)进行编码,因此使用2个本地Java字符空间。 您的字符表示为: :拉丁文大写字母T与CEDILLA(U+0162):feff0162 java表示将是2个java本机字符(0xfeff和0x0162)。 您可以通过测试一个字符是否为高代理项来检测此行为(在这种情况下,必须紧跟在低代理项之后)。 有关javadoc的更多信息: http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#isHighSurrogate%28char%29 通常在字符头文档中: http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html 编辑
忘记前面的响应,它不应该与数据表示相关联。似乎您要“解密”的任何字符串都必须首先加密为十六进制。因此,这排除了加密数据中的潜在值。你的输入应该已经错了
|
|
|
2
0
正如答案中已经提到的,问题是我们阅读了
UTF-8型
字符串原样
异-8859-1
并将其传递给
错误编码是由于
|