代码之家  ›  专栏  ›  技术社区  ›  Andreas

Java:希腊文件名(非拉丁文件名)有问题

  •  0
  • Andreas  · 技术社区  · 15 年前

    我正在读一个目录,里面有希腊名字的文件。但当我输出一个包含文件名的字符串时,我得到了这个“???????。某物”。

    是因为我正在运行java应用程序吗。通过控制台?

    有没有办法正确读取非拉丁文件名?

    3 回复  |  直到 15 年前
        1
  •  2
  •   Simon Nickerson    15 年前

    它很可能正确读取文件名;最可能的解释是,您的控制台无法呈现非拉丁字符。

    例如,以下程序应打印出希腊字母表的前三个字母:

    
    
    public class AlphaBetaGamma
    {
        public static void main(String[] args)
        {
            String abc = "\u03b1\u03b2\u03b3";
            System.out.println(abc);
        }
    }
    
    

    它在我的控制台上打印出“?”,因为它不能显示希腊字符。

        2
  •  1
  •   Niko    15 年前

    将您的控制台更改为使用utf-8作为字符编码-这将解决该问题

        3
  •  0
  •   Jon Skeet    15 年前

    为了补充simonn编写的内容,值得使用以下内容写出Unicode代码点:

    public static void dumpString(String text)
    {
        for (int i=0; i < text.length(); i++)
        {
            char c = text.charAt(i);
            System.out.printf("%c U+%04x", c, (int) c);
            System.out.println();
        }
    }
    

    Unicode web site 找出那些角色是什么 真正地 意思是(修订) Code Charts page 非常方便。)