精華區beta java 關於我們 聯絡資訊
作者 "Alex Yu" <s8153119@audi.nchu.edu.tw>, 看板 java 標題 Re: JDK 1.1 可以解決JAVA不能輸入中文的問題嗎? 時間 Rabbit System (Tue Dec 17 12:48:07 1996) ─────────────────────────────────────── Roam Bot <test@test> wrote in article <01bbe95a$d1b8d3a0$cd03768c@hychuang.NTITME-ECLAB>... > > Java 目前還沒有官方的亞洲語文解決方案, 除非用Unicode. > 我指的內碼就是BIG5的Unicode. > 目前只有CWIN95+IE3使用所謂新的Big5 Unicode. > 難不成叫所有的人都改用PC+CWIN95+IE3吧. Unicode 是Unicode, Big5 是Big5, 兩種是不同的字元集(或者換個 字眼說, 就是內碼), 沒有什麼叫做Big5 的Unicode 的奇怪東西. Big5 部份相容於IBM PC 相容機種上使用的字元集, 這是很多國外 程式都可以不經修改而能正常在使用Big5內碼的中文環境下使用的根本. 假設所有字元集的文字都可以直接不經轉換就顯示在另一個字元集下 是一種危險的想法, 因為不是每個字元集都存在編碼位置一樣而且意義 一樣的字, 一個明顯而可見的例子就是DOS 下的Big5內碼中文系統下的 邊框衝碼問題. Unicode 跟現有存在的單位元組/雙位元組字元集都不存在可以直接 涵蓋的關係, 只能透過轉碼的方式在不同字元集間互轉. 所以對使用 Unicode 的程式, 只存在輸出入系統是否能處理不同字元集的輸出入 文字並作適當的字元集轉換, 或者該程式本身能處理不同字元集間的 轉換再行輸出入文字資料. WinNT 系統核心是以前者處理, 內部使用Unicode. 使用Unicode 的 應用程式可以直接輸出入Unicode, 使用舊有SBCS/DBCS 字元集的程式 則會由系統先行將輸出入結果轉換字元集後再丟給應用程式. Win95 系統核心是以後者處理, 應用程式可以使用Unicode, 但是即使 應用程式使用Unicode 處理輸出入, 最後的輸出入結果仍然是SBCS/DBCS 字元集的文字, 一個Unicode 的程式在繁體中文版的Win95 下透過系統的 textout() 輸出的Unicode字串顯示時, 使用者看到的會是Big5 內碼的 字串. 簡單的說, CWin95+M$IE 可以輸入中文到Java applet, 應該是因為 內部使用Unicode 的M$IE 在CWin95 下可以正確收到Unicode 的輸入 結果. 在WinNT 下用Big5 碼的中文輸入法要讓使用Unicode 的M$IE 得到正常的Unicode 結果, 或者跑(對Unicode 缺乏完整支援的?)Netscape, 結果都應該是可預期的需要額外的處理手段的, 像是保持輸入結果能在 處理過程中都不會被轉換字元集, 不會被刪掉任何一個字, 然後在輸出 環境下也能以輸入時使用的字元集顯示該文字... 事情無論如何跟誰的Big5 or Unicode 標不標準無關, 那是完全兩回事.