Я пытаюсь сериализовать строку Java в массив байтов, а затем снова десериализовать массив в строку. Казалось, он работал нормально, пока я не проверил юникодный символ \ude4e
. По какой-то причине исходная строка "\ud34e"
не равна десериализованной строке.
Это код сериализации (где encoding = Charset.forName( "UTF-16BE" )
и str = "\ud34e"
)
ByteArrayOutputStream out = new ByteArrayOutputStream();
Writer temp = new OutputStreamWriter( out, encoding );
temp.write( str );
temp.close();
byte[] bytes = out.toByteArray();
String deserialized = new String( bytes, encoding );
Так что я делаю не так?
Спасибо!