博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于乱码
阅读量:6232 次
发布时间:2019-06-21

本文共 628 字,大约阅读时间需要 2 分钟。

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

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进行解码

转载于:https://www.cnblogs.com/akiddo/p/7388761.html

你可能感兴趣的文章
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
如何申请开通微信多客服功能
查看>>
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>
非监督学习算法:异常检测
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
Linux coredump
查看>>
Ubuntu 10.04安装水晶(Mercury)无线网卡驱动
查看>>
我的友情链接
查看>>
nginx在reload时候报错invalid PID number
查看>>
ElasticSearch 2 (32) - 信息聚合系列之范围限定
查看>>
VS2010远程调试C#程序
查看>>
[MicroPython]TurniBit开发板DIY自动窗帘模拟系统
查看>>
Python3.4 12306 2015年3月验证码识别
查看>>
从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
查看>>