java 在 UTF-16 上编码字符集
java encode charset on UTF-16
你能帮我吗,我可以在 UTF-16“测试”输出 0074 0065 0073 0074 上编码 java 中的字符集吗?有一些功能吗?
String x = "test";
System.out.println(x);
Java 的标准方法是 class String
的方法 getBytes(Charset charset)
。为了演示我只写了一个小方法:
private static void encodingTest() {
String testStr = "test";
System.out.println(StringUnicodeEncoderDecoder.encodeStringToUnicodeSequence(testStr));
StringBuilder sb = new StringBuilder();
byte[] bytes = testStr.getBytes(StandardCharsets.UTF_16);
for(byte b: bytes) {
sb.append(b).append(" ");
}
System.out.println(sb.toString());
}
该方法的输出是:
\u0074\u0065\u0073\u0074
-2 -1 0 116 0 101 0 115 0 116
请注意,值 116、101、115、116 是十进制值,如果转换为十六进制,则为 74、65、73 和 74 - 这就是您要查找的值。您在我的代码中看到的 class StringUnicodeEncoderDecoder
输出 \u0074\u0065\u0073\u0074
不是标准 Java 的一部分。它是我编写的开源 MgntUtils 库的一部分。但在这种情况下,它可能对您非常有用。这是 class StringUnicodeEncoderDecoder. The library itself could be obtained as Maven artifacts from here or from Github 的 Javadoc 作为 jar(包括源代码和 Javadoc)
这里是修改后的代码:
private static void encodingTest() {
String testStr = "test";
String encoded = StringUnicodeEncoderDecoder.encodeStringToUnicodeSequence(testStr);
System.out.println(encoded);
System.out.println(encoded.replaceAll("\\u", " "));
System.out.println(encoded.replaceAll("\\u", ""));
}
输出将是:
\u0074\u0065\u0073\u0074
0074 0065 0073 0074
0074006500730074
你能帮我吗,我可以在 UTF-16“测试”输出 0074 0065 0073 0074 上编码 java 中的字符集吗?有一些功能吗?
String x = "test";
System.out.println(x);
Java 的标准方法是 class String
的方法 getBytes(Charset charset)
。为了演示我只写了一个小方法:
private static void encodingTest() {
String testStr = "test";
System.out.println(StringUnicodeEncoderDecoder.encodeStringToUnicodeSequence(testStr));
StringBuilder sb = new StringBuilder();
byte[] bytes = testStr.getBytes(StandardCharsets.UTF_16);
for(byte b: bytes) {
sb.append(b).append(" ");
}
System.out.println(sb.toString());
}
该方法的输出是:
\u0074\u0065\u0073\u0074
-2 -1 0 116 0 101 0 115 0 116
请注意,值 116、101、115、116 是十进制值,如果转换为十六进制,则为 74、65、73 和 74 - 这就是您要查找的值。您在我的代码中看到的 class StringUnicodeEncoderDecoder
输出 \u0074\u0065\u0073\u0074
不是标准 Java 的一部分。它是我编写的开源 MgntUtils 库的一部分。但在这种情况下,它可能对您非常有用。这是 class StringUnicodeEncoderDecoder. The library itself could be obtained as Maven artifacts from here or from Github 的 Javadoc 作为 jar(包括源代码和 Javadoc)
这里是修改后的代码:
private static void encodingTest() {
String testStr = "test";
String encoded = StringUnicodeEncoderDecoder.encodeStringToUnicodeSequence(testStr);
System.out.println(encoded);
System.out.println(encoded.replaceAll("\\u", " "));
System.out.println(encoded.replaceAll("\\u", ""));
}
输出将是:
\u0074\u0065\u0073\u0074
0074 0065 0073 0074
0074006500730074