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 閱讀(1048) 評論(1)  編輯  收藏

          評論

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

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

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


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


          網站導航:
           
          主站蜘蛛池模板: 临安市| 宁海县| 绍兴市| 东宁县| 郧西县| 博湖县| 象山县| 象州县| 大英县| 盐边县| 云安县| 林州市| 乌兰浩特市| 湖口县| 德清县| 古浪县| 自治县| 分宜县| 弥勒县| 大余县| 镇远县| 内丘县| 吴忠市| 连城县| 饶阳县| 利津县| 漳平市| 玉林市| 玛曲县| 运城市| 天台县| 明光市| 长泰县| 益阳市| 东莞市| 潼南县| 寻乌县| 富锦市| 疏附县| 从江县| 福鼎市|