Мне нужно закодировать строку java для UCS, как «h», «0068»Кодировать строку в UCS2
например. У меня есть тестовая установка
@Test
public void testEncodeAsUCS2_string1() throws Exception {
String encoded = sendRequestTransformer.encodeAsUCS2("hello");
Assert.assertEquals("00680065006C006C006F", encoded);
}
поэтому этот тест позволяет узнать, было ли успешным преобразование, например. hello должен вернуться 00680065006C006C006F
В моем коде у меня есть следующее преобразование, которое, как я знаю, неверно, поскольку оно печатает [B @ 742cb491. (Этот метод toString для класса Object возвращает строку, состоящую из имени класса, объектом которого является экземпляр, символа at-sign `@ 'и шестизначного шестнадцатеричного представления хеш-кода объекта без знака)
мне нужна помощь с переводом
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/ guide/intl/encoding.doc.html). – azurefrog