我想将一个java字符串序列化成一个字节数组,然后将数组反序列化为一个字符串。它似乎工作正常,直到我测试了一个Unicode字符\ude4e
。出于某种原因,原始字符串"\ud34e"
不等于反序列化的字符串。Java String-> unicode->字符串转换不一致
这是序列化代码(其中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);
那我做错了吗? 谢谢!
'res.toByteArray()' - >'bytes'? – aioobe
哎呀,你是对的。错字。修复。 –