компиляция кода в Java - требуется вывод на хинди

1

когда я компилирую следующий код, я не получаю никакой ошибки времени компиляции. где, поскольку код out для кода отображается как "?????".

Я попытался скомпилировать код как javac hinditest.java

есть ли какой-либо способ получить выход на языке, который я ввел (хинди)

public class hinditest{
    public static void main(String args[])
    {
    String tst = "पाततद";
    System.out.print(tst);
    }
    }

заранее спасибо..

  • 1
    Какая ОС? должна быть винда? И чтобы получить результат, вы должны запустить программу. Компиляция не даст выход
  • 1
    Куда вы выводите? К консоли Windows?
Показать ещё 7 комментариев
Теги:

5 ответов

2

? означает, что символ не распознается. Это происходит, когда используемая кодировка не поддерживает символ. Проверьте, является ли кодировка UTF-8. Вы можете открыть терминал с помощью screen -U и выполнить свой код.

  • 1
    Кодировка чего именно? Не исходный код.
  • 0
    когда я проверял причины полученного вывода, многие люди писали о кодировании в наборе символов UTF-8 .. честно говоря, я не знаю, как это проверить ..
Показать ещё 5 комментариев
2

вы можете попробовать это;

public static void main(String[] args) {
    System.setProperty("file.encoding", "UTF-8");
    String tst = "पाततद";
    System.out.print(tst);
}

и если вы используете eclipse, чем вы можете установить в качестве Run Configuration → Common → Encoding → Select UTF-8

  • 0
    попробовал это .. все еще получая тот же вывод ..
  • 0
    @Shekhar +1, но я рекомендую использовать UTF-16 , он будет включать все возможные символы.
1

См. Ниже приведенную ниже последовательность стека для кодирования вашего вывода. Java: как определить (и изменить?) Кодировку System.console?

0
String tst = "पाततद";
byte[] array = tst.getBytes("UTF-8");
String s = new String(array, Charset.forName("UTF-8"));
System.out.println(s);

Конструктор String не может отличить кодировку, которая используется, и попытается преобразовать ее, используя системный стандарт, который обычно похож на ASCII или ISO-8859-1. Вот почему нормальный A-Za-z выглядит правильно, но затем все остальное начинает терпеть неудачу.

Байт - это тип, который работает от -127 до 127, поэтому для преобразования UTF-8 последовательные байты необходимо объединить. Невозможно, чтобы конструктор String отличал это от байтового массива, поэтому он будет обрабатывать каждый байт отдельно по умолчанию (таким образом, почему базовый буквенно-цифровой код всегда будет работать, когда они попадают в этот диапазон).

  • 0
    Это нелепо. String - это String, у нее нет кодировки - или, если хотите, она всегда имеет одинаковую кодировку, определенную JLS.
  • 0
    Книга - это книга, а самолет - это самолет. В чем ваша точка зрения? И нет, на самом деле строка - это не строка, а массив символов. Если вы все еще не верите мне, подумайте об обновлении ваших знаний Java. Кроме того, попробуйте поместить в скобки другую кодировку (например, ISO-8859-1), и вы увидите, что вывод на консоль ВОЛШЕБНО изменится!
Показать ещё 4 комментария
0

Вы можете указать свойство кодирования в командной строке следующим образом:

java -Dfile.encoding=UTF-8 hinditest

Ещё вопросы

Сообщество Overcoder
Наверх
Меню