当前位置: 首页 > 面试题库 >

如何编译编码为“ UTF-8”的Java源文件?

潘嘉颖
2023-03-14
问题内容

我保存了Java源文件,将其编码类型指定为UTF-8(使用记事本,默认情况下,记事本的编码类型为ANSI),然后尝试使用以下命令对其进行编译:

javac -encoding "UTF-8" One.java

但它给出了错误信息”

One.java:1: illegal character: \65279

?public class One {

^
1 error

还有什么其他html" target="_blank">方法可以编译吗?

来源如下:

public class One {
    public static void main( String[] args ){
        System.out.println("HI");
    }
}

问题答案:

您的文件
读为UTF-8,否则有值“65279”字符就绝不可能出现。javac期待你的源代码是在平台默认的编码,根据该javac文件:

如果未指定 -encoding ,则使用平台默认转换器。

十进制65279是十六进制FEFF,这是Unicode字节顺序标记(BOM)。在UTF-8中是不必要的,因为UTF-8始终被编码为八位字节流,并且没有字节顺序问题。

记事本即使不需要它们,也喜欢粘贴BOM,但是某些程序不喜欢找到它们。正如其他人指出的那样,记事本不是一个很好的文本编辑器。切换到其他文本编辑器几乎可以肯定会解决您的问题。



 类似资料:
  • 问题内容: 我正在从事一个涉及Maven,Java和Clojure的项目。我面临的问题是,UTF-8我的clojure源文件中有一些字符,由于这些原因,java编译器无法正确解释我的源代码,我通过设置环境变量使其正常工作,但是我想要的是通过MAVEN传递此属性。 我已经尝试设置,但这似乎不起作用。 我也尝试过为Maven的编译器插件设置配置…如下所示: 这也不起作用。 我做错了什么,还是有其他方法

  • 问题内容: 我有一个PHP脚本,名为: http://cyber- flick.com/apiMorpho.php?method=getMorphoData&word=kot 以纯文本显示一些数据: 如您所见,在适当的字符位置上有很多“忙碌”。我想做的是以某种方式显示此内容,以便人们在浏览器中看到正确的UTF-8字符。 您可以将其封装在HMTL标签中并以元UTF-8编码进行设置,但是由于将从该脚本

  • 问题内容: 我有一些当前代码,问题是它创建了一个1252代码页文件,我想强制它创建一个UTF-8文件 任何人都可以通过此代码帮助我,因为我说它当前可以工作…但是我需要强制保存utf ..我可以传递参数或其他东西吗? 这就是我所拥有的,任何帮助我都感激不尽 问题答案: 而不是使用,创建一个。然后,你可以将其包装在中,以允许你在构造函数中传递编码。然后,你可以将数据写入语句中:

  • 问题内容: 目前,我正在尝试开始使用Spring MVC。在尝试时,我遇到了编码问题。 我想在我的JSP页面上显示UTF-8字符,所以我在ModelAndView中添加了一个带有UTF-8字符的字符串。看起来像这样: 在JSP页面上,我只想显示具有UTF-8字符的字符串,如下所示: 结果,我得到以下结果: 请注意,下面的代码显示没有编码错误。我还在Springsource Tool Suite中将

  • 我想知道是否有人能帮忙,我很难将UTF-8字符发布到SagePay。数据库是MySQL,带有数据库字符集utf8和数据库排序规则utf8_general_ci。数据库连接字符串使用useUnicode=true 所有发布到数据库的数据都存储为UTF-8,所有查询的数据都显示为UTF-8,但当字符串编码如下时: 然后发到SagePay,他们会收到一个来自国际字符所在位置的乱码字符串。如果字符串中不包

  • 问题内容: 我有一个包含unicode字符串的词典列表。 可以将字典列表写入CSV文件。 我希望CSV文件以UTF8编码。 该模块无法处理将unicode字符串转换为UTF8的操作。 该模块文档具有的一切转换为UTF-8的例子: 它也有一个类。 但是…我该如何处理这些?他们是否不必将自己插入其中,以捕获反汇编的字典并对其进行编码,然后再将其写入文件中?我不明白 问题答案: 更新 :第三方unico