将UTF 8字符串代码转换为UTF 16字符串(实际UTF 16字符)
问题描述:
我已经在javascript中将UTF 16转换为UTF 8(使用方法:toUTF8Array)代码并将代码从ajax调用(注:UTF 16个字符是丑陋的,它需要哪些我不想编码!) JS代码:将UTF 8字符串代码转换为UTF 16字符串(实际UTF 16字符)
var compressed = LZString.compressToUTF16(uncompressed64Data);
var utf8values = toUTF8Array(compressed);
jQuery.ajax({
data :"img=+" utf8values
}
我已经收到了UTF在Java服务器端8码如下:
String utf8values = request.getParameter("img");
fyi,sop的结果: utf8values:225,186,162,227,160,181,229 ,160,165
现在我想将代码更改为实际的UTF 16字符串?
在此先感谢!
答
下面应该工作:
String[] split = "225,186,162,227,160,181,229,160,165".split(",");
ByteBuffer bb = ByteBuffer.allocate(split.length);
Arrays.stream(split).forEach(a -> bb.put((byte)Integer.parseInt(a)));
bb.flip();
String string = Charset.forName("UTF-8").decode(bb).toString();
+0
优秀的答案。如果你能够提取这个Java 1.7,我会更高兴。谢谢 –
+1
@WillMcavoy我只是用它来简洁,用循环替换'forEach'就足够简单了。 – Oleg
是' “225,186,162,227,160,181,229,160,165”'实际的字符串你有吗? – Oleg
是的。这是我给出的样本 –
所以它应该是'Ả㠵堥'? – Oleg