eclipse 编码设置之BOM丢失

本文介绍如何在Eclipse中设置UTF-8编码,并解释了不同设置的作用及BOM在编码识别中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了正确显示汉字(2字节汉字和4字节汉字)

eclipse 能设置编码的地方真多

1 window/preferences/general/workspace/Text file encoding

2 window/preferences/general/content types

3 project/property/resource/text file encoding

4 edit/set encoding

5 file/properties/resource/text file encoding

 

设置eclipse 使用UTF-8的方法:

 1中,选择UTF-8

 2 中,在右侧content types里,选text/java source type,在default encoding 中,填入utf-8,然后update

以后新建的.java文件都是UTF-8编码

 

但是,这种文件开头是没有BOM的。 

所以选择UTF8,若是unicode-little-endian或unicode-big-endian 在需要BOM的软件中会有乱码。

 

unicode-big-endian(或unicode-little-endian)

如果先用 记事本 保存为unicode big endian,则文件开头有BOM:FE FF,也可以用eclipse 打开,set encoding 要选择UTF-16,而不能选UTF-16BE或UTF-16LE,否则运行会有错误。

UTF-16BE或UTF-16LE 是为没有BOM的文件准备的,如eclipse 自己保存的unicode big endian/unicode little endian 文件。 

 

BOM —— Byte Order Mark,字节顺序标记

  在UCS 编码中有一个叫做 "Zero Width No-Break Space" ,中文译名作“零宽无间断间隔”的字符,它的编码是 FEFF。而 FFFE 在 UCS 中是不存在的字符,所以不应该出现在实际传输中。UCS 规范建议我们在传输字节流前,先传输字符 "Zero Width No-Break Space"。这样如果接收者收到 FEFF,就表明这个字节流是 Big-Endian 的;如果收到FFFE,就表明这个字节流是 Little- Endian 的。因此字符 "Zero Width No-Break Space" (“零宽无间断间隔”)又被称作 BOM。

  UTF-8 不需要 BOM 来表明字节顺序,但可以用 BOM 来表明编码方式。字符 "Zero Width No-Break Space" 的 UTF-8 编码是 EF BB BF。所以如果接收者收到以 EF BB BF 开头的字节流,就知道这是 UTF-8编码了。Windows 就是使用 BOM 来标记文本文件的编码方式的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值