终端Mac问题(编码) - 不显示来自Java的字符> 127

时间:2013-10-14 14:44:04

标签: java macos encoding terminal

实际上我在Mac上的终端窗口中显示编码有问题。

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

MySimpleProgram

编译完成后,当我运行该代码时,我面对这个结果: ResultOfExecution

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

我的所有偏好都设置为UTF-8,在编辑器中以及我的终端中,但我找不到解决此问题的方法!

更新:

此处还有编写和编译程序: enter image description here

提前致谢!

1 个答案:

答案 0 :(得分: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