Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Java: проблема с греческими именами файлов (нелатинскими именами файлов)

Автор вопроса: AndreasОтветов: 3

Использование Java: я читаю каталог, содержащий файлы с греческими именами. Но когда я вывожу строку, содержащую имя файла, я получаю это "???????.something".

Это потому, что я запускаю приложение Java. через консоль?

Есть ли способ правильно прочитать нелатинские имена файлов?

Спасибо,

  • Публикация некоторого кода может дать вам лучшие ответы. llamaoo7 20.08.2009

javafilefilesystems

Ответы

Ответ 1 · рейтинг 2 · Simon Nickerson

Вполне возможно, что имена файлов читаются правильно; наиболее вероятное объяснение заключается в том, что ваша консоль не может отображать нелатинские символы.

Например, следующая программа должна вывести первые три буквы греческого алфавита:



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

Он печатает "???" на моей консоли, потому что она не способна отображать греческие символы.

Ответ 2 · рейтинг 1 · Niko

измените свою консоль, чтобы использовать utf-8 в качестве кодировки символов - это должно решить эту проблему

Ответ 3 · Jon Skeet

Чтобы добавить к тому, что написал Саймонн, стоит записать кодовые точки 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, чтобы узнать, что эти символы на самом деле означают. (Очень удобна страница кодовых диаграмм.)

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы