Использование Java: я читаю каталог, содержащий файлы с греческими именами. Но когда я вывожу строку, содержащую имя файла, я получаю это "???????.something".
Это потому, что я запускаю приложение Java. через консоль?
Есть ли способ правильно прочитать нелатинские имена файлов?
Спасибо,
Ответ 1 · рейтинг 2 · Simon Nickerson
Вполне возможно, что имена файлов читаются правильно; наиболее вероятное объяснение заключается в том, что ваша консоль не может отображать нелатинские символы.
Например, следующая программа должна вывести первые три буквы греческого алфавита:
public class AlphaBetaGamma
{
public static void main(String[] args)
{
String abc = "\u03b1\u03b2\u03b3";
System.out.println(abc);
}
}
Он печатает "???" на моей консоли, потому что она не способна отображать греческие символы.
Ответ 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, чтобы узнать, что эти символы на самом деле означают. (Очень удобна страница кодовых диаграмм.)