字符集与字符编码

windows下编辑文本文档,内容是abc,然后换行
以ANSI编码保存,winhex打开显示为
在这里插入图片描述
0D 0A表示\r\n
(ANSI在简体中文windows操作系统中代表gbk编码,繁体中文windows操作系统中代表big5编码)

以utf8编码保存,winhex显示为
在这里插入图片描述
其中EF BB BF表明文档是由utf8编码,叫做BOM(byte order mark)

以unicode编码保存,winhex显示
在这里插入图片描述
FF FE是BOM,表明是little endian。每个字符采用两个字节表示,所以字符a编码为61 00

以unicode big endian保存,winhex显示
在这里插入图片描述
FE FF表明是big endian

linux下
打开vim,执行 :set enc fenc fencs,如下
在这里插入图片描述
enc/encoding:vim的默认显示编码格式
fencs/fileencodings:vim依次匹配的编码列表
fenc/fileencoding:文件的编码格式,如果和enc不一样,则保存时会从enc转为fenc,读取时从fenc转为enc

文件test内容为abc,通过 :set fenc显示编码格式为utf8
od -t x1 test 显示为
在这里插入图片描述
0a是linux下的换行符,0d 0a是windows下的换行符

将文件以utf16格式保存,执行 :set fenc=utf-16(等价 :set fenc=utf-16be)
od -t x1 test 显示为
在这里插入图片描述
每个字符对应2个字节,且以大端形式保存
此时用vim打开,由于fencs中的utf-8可以解码,所以fenc为utf8
vim的显示编码也是utf8,文件内容显示如下
在这里插入图片描述
其中 ^@对应字节00,为不可打印字符的显示形式。

如果需要正常显示文件内容,需要重新以utf-16的格式显示文件内容,执行 :edit ++enc=utf-16

以utf-16le格式存储,:set utf-16le
od -t x1 test 显示为
在这里插入图片描述
vim打开后同样有问题,因为utf8也可以解码,需要以utf-16le格式解码,执行 :edit ++enc=utf-16le

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值