【问题标题】:Printing Hindi characters as string in java results in error在java中将印地语字符打印为字符串会导致错误
【发布时间】:2011-09-06 10:27:56
【问题描述】:

我在 java 中将印地语字符打印为字符串,但出现错误。我使用 UTF-8 将 java 文件保存在记事本中。

public class MainClass {
    public static void main(String args[]) throws Exception {
        String s = "साहिलसाहिल";

        System.out.print(s);
    }
}

编译后,我得到 2 个非法字符错误。为什么会这样?

【问题讨论】:

  • 它通常应该编译(对我来说确实如此)。你能检查一次编码吗?
  • 您得到的确切错误是什么?您是在 Windows 还是 Linux 或其他平台上编译?
  • 这可能是相关的:stackoverflow.com/questions/1726174/…

标签: java


【解决方案1】:

您必须指定适当的编码:

javac -encoding utf8 MainClass.java

【讨论】:

    【解决方案2】:

    尝试像这样编译:

    javac -encoding UTF-8 MainClass.java
    

    确保您也使用正确的编码名称。

    如果这样失败,很可能是记事本在前面添加了一个BOM的问题,这让java编译器感到困惑。如果这是您的问题,您应该停止使用记事本来编辑 UTF-8 文件。使用不会向 UTF-8 文件添加 BOM 的体面的文本编辑器。

    【讨论】:

      【解决方案3】:

      尝试一下

      java -Dfile.encoding=UTF8 MainClass.java

      【讨论】:

        【解决方案4】:

        您需要将源文件保存为 UTF-8 格式(使用 Notepad++ 或 Eclipse IDE 很容易做到),然后使用 -encoding 切换到 javac 进行编译。

        javac -encoding utf8 MainClass.java
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多