Netbeans控制台不显示孟加拉unicode字符

我有一个写有一些孟加拉字符的test.txt文件

</s>ারমাথা,তোমারমাথা

现在当我从一些包里运行这个时,

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) ; } } } 

我得到一些块…以及我不能写它。 这是图像 在这里输入图像描述 任何人都可以帮助这件事…? 谢谢。

你似乎在使用Netbeans。 Netbeans中的控制台默认使用Monospace字体,不能显示Bangla字符。

您可以从上下文菜单切换到不同的字体:

为Netbeans控制台选择字体

然后select使用Bangla字形的字体显示控制台中的所有字符(我select了Arial Unicode MS,但是您可以select任何其他Bangla字体):

在对话框中选择字体

这将显示你想要的输出:

显示孟加拉字符

另外,请注意Netbeans项目编码的重要性:

Netbeans项目编码

显然,控制台编码恰好与项目编码相同; 试图通过设置file.encoding系统属性来改变这一点。 在这种情况下,所有UTF-8编码的string将被显示而没有问题。 但是,如果您的文件恰好使用UTF-16BE / LE或任何其他编码scheme进行编码,则控制台将显示乱码/ mojibake ,因为无法根据需要更改terminal/控制台编码。 在这种情况下,首选方法是将文件存储为与项目编码相同的编码,以便通过System.out显示其内容不会导致显示乱码。

字体下载链接: code.google.com

下面是在netbeans中解决字体问题的样子: