Консоль Netbeans не отображает символы юникода Bangla

У меня есть файл test.txt с некоторым бенгальским символом, написанным как

আমার মাথা, তোমার মাথা

Теперь, когда я запускаю это из некоторого пакета,

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Test {
    public static void main( String ajaira[] ) throws FileNotFoundException, IOException
    {
        File f = new File("test.txt") ;
        InputStream is = new FileInputStream(f) ;
        BufferedReader br = new BufferedReader( new InputStreamReader(is) );
        System.out.println("Abs path: " + f.getAbsolutePath() ) ;
        String s ;
        while( (s = br.readLine()) !=null )
        {
            System.out.println(s) ;
        }
    }
}

Я получаю блок... ну, я не мог его написать. Это изображение enter image description here Может ли кто-нибудь помочь в этом? Спасибо.

Ответ 1

Кажется, вы используете Netbeans. Консоль в Netbeans по умолчанию использует шрифт Monospace, который не может отображать символы Bangla.

Вы можете переключиться на другой шрифт из контекстного меню:

Choose Font for Netbeans Console

а затем выберите для отображения всех символов в консоли, используя шрифт с глифами Bangla (я выбрал Arial Unicode MS, но вы можете выбрать любой другой шрифт Bangla):

Choose Font in Dialog

Это отобразит желаемый результат:

Display bangla characters

Также обратите внимание на важность кодирования проекта Netbeans:

Netbeans project encoding

По-видимому, консольная кодировка оказывается такой же, как и проектная кодировка; попытка изменить это, установив свойство file.encoding System ничего не дает. В этом случае все кодированные строки UTF-8 будут отображаться без проблем. Однако, если ваш файл будет закодирован с помощью UTF-16BE/LE или любой другой схемы кодирования, тогда на консоли будет отображаться тарабарщина /mojibake, поскольку невозможно изменить кодировку терминала/консоли по мере необходимости. В этом случае предпочтительный подход заключается в том, чтобы хранить файлы в той же кодировке, что и проектная кодировка, поэтому отображение их содержимого через System.out не приведет к отображению тарабарщины.

Ответ 2

Ссылка на скачивание шрифта: code.google.com

Вот как решить проблему шрифта в netbeans: