JAVA方法DataOutputStream.writeBytes(String s)传递中文乱码问题
今天接口测试搞定一个中文乱码问题,赶紧记一下~
问题出在writeBytes(String s)这个方法上。
JAVA中的char是16位的,一个char存储一个中文字符,直接用writeBytes方法转换会变为8位,直接导致高8位丢失。从而导致中文乱码。
解决方法:
现转换为字节组,再write写入流。方法如下:
原方法:
out.writeBytes(json.toString());
新方法:
out.write(json.toString.getBytes());
本文介绍了一个关于使用Java中DataOutputStream.writeBytes方法时遇到的中文乱码问题及其解决方法。问题在于该方法将16位的Java字符转换为8位字节时导致中文字符的高位丢失,最终引发乱码。解决办法是先将字符串转换为字节数组,然后再通过write方法写入。
47万+

被折叠的 条评论
为什么被折叠?



