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

尝试编译Java代码时出现非法字符

谷梁宏恺
2023-03-14
问题内容

我有一个程序,允许用户在富文本框中键入Java代码,然后使用Java编译器对其进行编译。每当我尝试编译自己编写的代码时,都会收到一条错误消息,提示我在我的代码开头没有一个非法字符。这是编译器给我的错误:

C:\Users\Travis Michael>"\Program Files\Java\jdk1.6.0_17\bin\javac" Test.java
Test.java:1: illegal character: \187
public class Test
 ^
Test.java:1: illegal character: \191
public class Test
  ^
2 errors

问题答案:

当您不指定编码时,BOM由File.WriteAllText()或StreamWriter生成。默认值为使用UTF8编码并生成BOM。您可以使用-
encoding命令行选项将此内容告知Java编译器。

阻力最小的路径是避免生成BOM。通过指定System.Text.Encoding.Default来执行此操作,该操作将在操作系统的默认代码页中将包含字符的文件写入文件,并且不会编写BOM。使用File.WriteAllText(String,String,Encoding)重载或StreamWriter(String,Boolean,Encoding)构造函数。

只要确保您创建的文件不会被世界另一端的机器编译即可。它将产生mojibake。



 类似资料:
  • 问题内容: 当以下Java代码在eclipse中执行时,它会提供正确的输出(即打印“ Class B”),但是根据Java规范,该代码无法编译(因为超类构造函数需要一个参数,并且构造函数由B类的编译器包括对超类no arg构造函数的调用(未定义),并且当尝试在命令行中使用javac命令编译文件时,它仅编译超类(即A类),并因以下编译而失败错误: 以下是java文件的内容: 有人可以解释eclips

  • 我想在将源代码传递给编译器之前,在编译时转换java源代码。换句话说,我想创建一个能够转换的预处理器 转换为任何其他代码,如: null 我很乐意为这两种方法找到一个java代码预处理的简单示例。 有没有人认为有什么聪明的方法来进行代码转换,而不是用多个ivy模块完全改变现有的大型代码库?注释似乎是最好的方法,但我不明白该怎么做。

  • 我在Windows 7中使用Python 3.4和Pygame为我的小儿子创建了一个小游戏。它也适用于Python 2。十、 有一些小错误。然后我尝试创建一个。使用py2exe的exe文件。我准备了一个设置。py文件复制我在pygame2exe wiki上找到的源(http://www.pygame.org/wiki/Pygame2exe?parent=CookBook)还尝试使用我在这里和pyt

  • 问题内容: 作为建议在这里,我已成功安装了微软的Visual C ++编译器为Python 2.7 编译一些用Cython代码,但是: 仍然产生: 错误:找不到vcvarsall.bat 如何使用Python 2.7编译Cython代码(例如在Windows 7 x64上)? 注意:我已经仔细阅读了以下错误问题:找不到vcvarsall.bat,但是主要答案(包括修改)都无法解决。 问题答案: 我

  • * *我正在使用JSP、JavaServlet和Hibernate开发一个电子商务应用程序。执行此代码时出现以下错误。我得到了这个错误需要帮助调试它**

  • 我是Java编程的新手,我正在自学。 在运行javac时遇到一些问题后,我再次检查了windows地址和类路径,并将它们设置为正确的目录路径。问题解决了,因为现在当我输入'javac-version'时,我得到的版本显示java comilier已经安装。因此,现在我正试图从命令提示符运行一个Helloworld程序,以便检查基本功能!(我没有使用Eclipse,因为我还没有准备好增加额外的复杂性