作者sbrhsieh (sbr)
看板java
標題Re: [問題] 關於輸出全形的符號
時間Tue Mar 31 17:56:39 2009
※ 引述《seanogptwn (ogp)》之銘言:
: 在數字鍵6的地方
: 有"^"的符號,是半形的
: 由於課業的需要,需要轉換成全形"^ "
: 在程式中
: 順利取得半形與全形符號的ASCII碼,分別是94與65342
: 將ASCII 94轉為char則正常顯示^
: 但是將 65342轉為char時,則出現"?"
65342 還在 char type 的值域內,將 65342 assign 給 char type variable 是
沒問題的。
你提到出現 "?" 實際上是你把這個 char variable value 輸出到某個你看的見
的裝置(比如 console window 等等),而這個裝置顯示了 "?",這不表示 Java 不
支援這個全形符號,而是你輸出的方式正不正確的問題。
如果你會以 Java 寫 GUI based application,你可以把值為 65342 的 char 以
UI component 來呈現,你應該就可以看到類似 ︿ 的字。
另外,你可以考慮使用這個 0xFE3F(65087) unicode char,他看起來也是全形的
^: ︿ 。
: 全形符號有很多,但是好像只有這個符號有這樣的問題
: 其餘的!@$%&*()abcABC…之類都是正常顯示
: 想請問這樣的問題
: 是代表JAVA無法支援這個全形符號的輸出??
: 還是有其他的方法可以解決這個問題??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.134.87
→ seanogptwn:感謝您的細心解說 不過有new FileWriter 似乎也不行? 03/31 18:09
你沒有弄懂。輸出到檔案以後你以何方式觀察這個檔案的內容?
輸出到檔案會牽涉到編碼。
如果你把那個字元以 UTF-8 or UTF-16BE/LE 編碼輸出到檔案,以支援 unicode 的
軟體(比如瀏覽器)來瀏覽,你就可以看到此字的外觀。
※ 編輯: sbrhsieh 來自: 218.173.134.87 (03/31 18:14)
推 seanogptwn:感謝,我再試試看,如果有問題再向您請教 thx 03/31 23:20
→ sbrhsieh:你可以改用 unicode point=65087 這個字,這個字有在 04/01 00:03
→ sbrhsieh:big5/ms950/cp950 字集裡(可以正確地以 big5 來編碼) 04/01 00:05
→ sbrhsieh:輸出到字頁碼為 cp950 的 console 時不會失真成 '?' 04/01 00:07
推 ogamenewbie:推專業, 這個我就講不清楚了 :) 04/01 00:11
推 seanogptwn:有試過sbr兄的提供的方法ok,用utf-8編碼寫入txt 也ok! 04/01 16:00