1
我需要将java字符串编码为UCS,如'h'至'0068'将字符串编码到UCS2
例如。我有一个测试设置
@Test
public void testEncodeAsUCS2_string1() throws Exception {
String encoded = sendRequestTransformer.encodeAsUCS2("hello");
Assert.assertEquals("00680065006C006C006F", encoded);
}
所以这个测试让我知道,如果转换成功,例如。你好应该返回00680065006C006C006F
在我的代码中,我知道下面的转换是错误的,因为它打印[B @ 742cb491。 (Object类的这个toString方法返回一个字符串,该字符串由对象为实例的类的名称,符号字符“@”和对象的哈希代码的无符号十六进制表示形式组成)
我需要帮助转换
String encodeAsUcx2(String messageContent){
try {
messageContent.getBytes("UTF-16LE");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return String.valueOf(messageContent.getBytes());
}
我该如何解决这个问题?
谢谢,适用于正常的英语单词,但我有不同的语言在不同的语言中的问题。它导致字母输出为FFFD,用于指示系统何时无法将数据流呈现给corect符号 – user3520080
@ user3520080您可以举个例子吗?您可能试图对UTF-16不支持的某些内容进行编码,并且需要使用[Java其他编码支持]之一(https://docs.oracle.com/javase/8/docs/technotes/)而不是使用指南/ intl/encoding.doc.html)。 – azurefrog