对java unicode编码以及读写文件编码的理解



1.编码简介:
         计算机中存放的文字,最终都是由二进制表示的。而我们能够通过“记事本”,“eclipse”等文本编辑工具打开文件,看到文字。都是由于这些工具将二进制文件,参考对应码表解码后显示的。
         编码:就是应用程序将文字(字符串)通过码表翻译为二进制。
         解码:就是应用程序将二进制文件通过码表翻译为文字(字符串)。


2.编码分类:
GBK:两个字节表示一个字符,每个汉字编码后的字节都是1开头。简体中文windows操作系统,系统默认编码即为GBK编码。
unicode:每个字符都用两个字节表示。java内存中字符,字符串的所用的编码即为unicode编码
              (可以将char转换为int类型,查看其二进制——此即为unicode编码。这与将字符通过unicode方式存入文件所得二进制相同)。
utf-8:汉字一般用3个字节表示,还有2个,1个字节表示字符。
ASCII:美国制定,1个字节标示字符,第一bit位为0。(不包括汉字)
ISO8895-1:欧洲制定,1个字节标示字符,第一bit位为1.(不包括汉字)


3.java读写文件涉及编码流程:
以GBK编码为例

读文件:(InputSreamReader(f,"GBK"))
文件(二进制)——————>通过GBK码表解码为字符——————>JVM将字符按unicode编码为内存中的字符(两个字节的二进制数)

写文件:(OutputStreamWriter(f,"GBK"))
JVM将字符按unicode编码将内存中二进制数解码为字符——————>字符按GBK编码为二进制流——————>将二进制流写入文件


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值