hhh

          常用鏈接

          統計

          最新評論

          關于java字符輸出到界面時的問題

          都知道java的字符編碼方案是采用unicode的。
            比如 String test = "test 編碼";
            那么"test 編碼"是采用unicode編碼后的二進制形式保存。
            
            然而如果要把test輸出到系統邊界以外的地方,那么都可能要涉及到編碼轉換問題,無論是文件還是網絡的另一端。
            不過沒關系,java提供了強大的I/O庫,有Reader 和 Writer兩個適配器體系,我們可以將test以我們想要的編碼方案輸出。
            
            但是如果將test的東西輸出到界面時到有些問題了,本來從概念上界面也是系統的邊界,所以unix有一切皆文件的抽象,當然如果界面是交互 性GUI時這個抽象顯然是不夠的,這就不論了。關鍵是GUI系統并沒有提供類似javaI/O的這種能力,java也沒有直接以unicode形式輸出給 GUI系統,而是好像會把內存中變量字符再通過系統默認語言(字符集)編碼去轉換,然后扔給繪圖系統吧!
            
            這樣的話如果 JLable label = new JLabel(test);
            那么這個label的顯示在簡體中文版的OS上沒問題,但如果在繁體中文版的OS可能就有問題了。
            
            按理說swing是獨立于本地OS的GUI系統,但是他還是建立在java2D上,而java2D還是要利用本地的繪圖系統,像渲染文字這種繪圖是不是java2D還是利用了本地繪圖系統呢!


          java GUI “?” “口” 這兩個我都碰到過。
            
            如果某中編碼方案里沒有這個文字,java會用" ?"這個代替。
            
            如果某種文字沒有相應的字體,java會用"口"代替。
            
            java在輸出到系統界面時會把內存中變量字符再通過系統默認語言(字符集)編碼去轉換!
            
            我覺得如果java自己實現所有unicode支持的文字的繪圖(基于更低級的圖形API),那么他沒有必要轉,因為unicode字符給java圖形系統,他都能把它表現出來,當然java圖形系統基于OS的更低級的圖形API。
            
            是不是java自己實現所有unicode支持的文字的繪圖這項任務比比較困難。
            
            如果java能做到這樣真的很強大啊!
            
            這樣的話JLable label = new JLabel(test); 無論在什么語言版的OS 都OK。

          posted on 2006-10-17 17:46 hhh 閱讀(1052) 評論(1)  編輯  收藏

          評論

          # re: 關于java字符輸出到界面時的問題 2006-10-18 14:26 123bingbing

          增開7群,號碼 30440732
          8群 30756649
          9群 30178567
          10群 28694497

          我們的qq群:15096318 學習程序的都可以來  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 磐石市| 荔波县| 美姑县| 玉树县| 梁平县| 潞城市| 济源市| 文昌市| 玛纳斯县| 双桥区| 临高县| 鄯善县| 新宾| 图木舒克市| 温泉县| 那曲县| 泽库县| 西畴县| 略阳县| 宕昌县| 神农架林区| 临澧县| 青州市| 白银市| 吴川市| 汉沽区| 汉寿县| 景谷| 丹阳市| 宜良县| 丰台区| 五莲县| 庆城县| 喀喇沁旗| 漯河市| 惠州市| 巴东县| 雷山县| 潼南县| 阳信县| 醴陵市|