0

实际上,我在 mac 上的终端窗口中的显示编码遇到了一些问题。

我正在用 Java 运行一个简单的程序:

我的简单程序

在编译之后,当我运行该代码时,我会遇到以下结果: 执行结果

变量的编号z与确切的 unicode 值不匹配!

在编辑器和终端中,我所有的首选项都设置为 UTF-8,但我找不到解决这个问题的方法!

更新:

这里还有程序的编写和编译: 在此处输入图像描述

提前致谢!

4

1 回答 1

0

使用以下 Java 程序:

/* A.java */
class A
{
  public static void main (String[] args)
  {
    for (char c = 'A'; c < 270; c++)
    {
      System.out.print(c);
    }
    System.out.println();
  }
}

然后我得到以下输出:

 $ java -Dfile.encoding=ASCII A
 Default Charset: US-ASCII
 abcdefghijklmnopqrstuvwxyz{|}~??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
 $ java -Dfile.encoding=iso-8859-1 A
 Default Charset: ISO-8859-1
 abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������??????????????
 $ java -Dfile.encoding=UTF-8 A
 Default Charset: UTF-8
 abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČč
 $ java A
 Default Charset: UTF-8
 abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČč

从上面你可以看到 ISO-8859-1 打印了 '�' 和​​ '?'。'�' 表示它不是有效的 UTF-8,终端无法打印它,而 '?' 意味着 Java 无法将所需的字符转换为该字符集。这就是为什么 ASCII 只有 '?',因为它只能转换 ASCII 字符。

默认的 file.encoding 取自您的语言环境,这就是您可能需要设置 LC_CTYPE 的原因。否则,您的终端需要设置为理解 UTF-8。

$ echo $LC_CTYPE
UTF-8
于 2013-10-14T15:14:20.380 回答