浏览 996 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2005-01-27
软件环境:
sun jdk 1.4.2 配置文件: <target name="compile" depends="init"> <javac srcdir="${src.dir}" destdir="${build.dir}" encoding="UTF-8" debug="on" deprecation="off" optimize="on" includes="**/*.java" fork="TRUE" verbose="yes" > <classpath refid="build.classpath"/> </javac> 错误提示信息: java文件前3个特殊字符BOM(Byte Order Mark)被认为是非法字符 你的分析: 问题原因: BOM原本为了指明该文件使用的不同的编码上的字节顺序(高位在先或低位在先)。使用的是U+FEFF,而反向的FFFE则被定义为*非字符*,这样就可以根据读如的字节来判断字节顺序。 显然对于UTF-8编码来说,并不存在UTF-16和UTF-32的字节顺序的问题,因此本没有必要使用BOM。 但BOM同时也可以起到Unicode标戳的作用,因为其他非Unicode编码的文件也基本不可能用FEFF这样的字节作为开始。UTF-8编码下,BOM的字节是EFBBBF,也极少被作为其他非Unicode编码的文件首。 所以Unicode规范建议应用程序使用这个标戳来标示字符编码的无类型的数据流。不过Unicode规范也说这不是必需的,因此说Sun的javac并不因此就被认为是不遵守Unicode,因为javac可以有外部的参数来指定编码。 到底如何解决呢???? 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2005-01-27
需要一个工具,支持保存没有bom的utf-8文件
记事本不行 editplus2.1.2可以,2.1.1不行 idea3.0.5可以。。但是拼音输入的时候,汉字在候选框中是空格,填到编辑区才显示正常 eclipse不知道。。 |
|
| 返回顶楼 | |



