2011-08-28 106 views
17

我有一些孟加拉語字符的test.txt文件寫成Netbeans的控制檯不顯示孟加拉Unicode字符

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

現在,當我從一些packege運行此,

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 任何人都可以幫助這件事...?謝謝。

+0

你能通常顯示在終端程序孟加拉文字?你使用哪個終端程序?哪個OS?這不太可能是Java問題。 –

+0

不確定您是否能夠檢查在您的IDE中使用的控制檯的編碼是否預期了正確的編碼? –

+1

@Desworld:vai,matha niya mata mati keno? mojar text dileo parten;)tobe ai text tao kharap na。 – Kowser

回答

17

你似乎在使用Netbeans。 Netbeans中的控制檯默認使用Monospace字體,不能顯示Bangla字符。

可以從上下文菜單中切換到不同的字體:

Choose Font for Netbeans Console

,然後選擇在使用的字體與該孟加拉語字形控制檯顯示的所有字符(我選擇Arial字體的Unicode MS,但是你可以選擇任何其他孟加拉字體):

Choose Font in Dialog

這將顯示輸出,你的願望:

Display bangla characters

另外,還要注意NetBeans項目編碼的重要性:

Netbeans project encoding

顯然,控制檯編碼恰好是相同的項目編碼;試圖通過設置file.encoding系統屬性來改變這一點什麼都不產生。在這種情況下,所有UTF-8編碼的字符串都將毫無問題地顯示出來。但是,如果您的文件恰好使用UTF-16BE/LE或任何其他編碼方案進行編碼,則控制檯將顯示亂碼/ mojibake,因爲無法根據需要更改終端/控制檯編碼。在這種情況下,首選方法是使用與項目編碼相同的編碼存儲文件,以便通過System.out顯示其內容不會導致顯示亂碼。

+0

Netbeans 7.1上下文菜單中沒有「選擇字體」選項.. –

+0

@Hernan Eche「您必須禁用」wrap text「,才能可以使用上下文菜單選擇字體,或者使用options-miscellanous-terminal並在那裏設置字體。這種方法的優點是,該對話框只顯示等寬字體,而等寬字體可以使用「wrap text」功能 – Kejml

+0

在Netbeans 8上。1從上下文菜單中選擇「設置」選項。 –

4

字體下載鏈接:code.google.com

這裏是只看得到解決NetBeans中的字體問題: