码迷,mamicode.com
首页 > 其他好文 > 详细

关于乱码

时间:2017-08-18 11:49:44      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:java   改变   string   文字   网页   内存   数组   传输   eclips   

由于编码方式和解码方式的不同导致的内容丢失

Java会将字符串以.java文件的编码方式保存在内存中
当输出时会将字符串以.java文件的编码方式输出到输出流中

导致乱码的情况
1.程序输出时的编码方式与显示终端解码方式不同
譬如:一个以UTF8编码方式保存的.java文件输出字符串到Windows控制台(默认编码方式为GBK)就会出现乱码

Eclipse中的控制台的编码方式会随文件编码方式的而改变并保持一致,所以Eclipse中不会出现这种情况的乱码

2.在数据传输中,数据发送时的编码方式与接收时的解码方式不同

譬如:Http请求,直接以UTF-8解码网络输入流,若原网页的编码方式不是UTF-8会导致乱码
这时需要从乱码(英文字符一般不会乱码)中解析(正则或解析meta标签)出正确的编码方式
但是一般无法将乱码还原成正确的内容,因为不同字符集映射关系不同,错误的解码会导致信息的丢失,表现为“???锟斤拷”等经典乱码
这就要求在接收数据时,采用字节流的方式,先不进行解码,也就不会造成信息的丢失

另:String类的成员方法getBytes(charSet)是将此字符串按照charSet进行编码,返回得到的的byte数组
String类的构造方法new String(bytes,charSet)是将字节数组bytes按charSet进行解码

关于乱码

标签:java   改变   string   文字   网页   内存   数组   传输   eclips   

原文地址:http://www.cnblogs.com/akiddo/p/7388761.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!