2010-09-16 80 views
2

我是Java編程語言的初學者,我有一個問題,我不知道如何解決。我需要表示特殊字符,如「Ψ」,「Σ」,「Θ」,「Ξ」,「,」,「ß」。 我該怎麼辦?如何用Java特殊字符表示

更新:感謝您的答案,對不起,沒有詳細的一點點問題,所以在這裏我走了。 我正在嘗試製作7Bit字母表,這是用於編碼發送「SMS」的PDU。 http://pastebin.com/NtY1aWTR這裏java中的類。

如果用戶輸入字符,則方法會從HashMap處理7Bits中的值。 例如: 如果用戶輸入「Votaguz」 結果是:1010110 1101111 1110100 1100001 1100111 1110101 1111010 但是,當用戶嘗試寫一些東西是如何:「Θ」ω- 答案是:空null

+1

代表哪裏?您的控制檯(可能不可能)?一個圖形組件(AWT/Swing/...)?使用Java發送到打印機? – 2010-09-16 18:24:54

+0

你的意思是「在你的應用程序的源代碼」或「在應用程序中」? – 2010-09-16 18:25:43

+0

沒有一個地方需要考慮角色處理。最好是更具體地說明問題是什麼。請參閱此博客文章的簡介:http://illegalargumentexception.blogspot.com/2009/05/java-rough-guide-to-character-encoding.html – McDowell 2010-09-16 20:54:51

回答

0

如果人物出現在你的平臺上使用的編碼(通常代碼頁1252在Windows上,對應於ISO -Latin-1)你可以直接在源代碼中使用它們。

如果您不想混淆代碼頁的兼容性,您應該將標準ASCII以外的字符(如那裏的那些字符)表示爲\ Uxxxx,其中xxxx是您希望字符的Unicode值的十六進制表示形式。乏味但便攜。

+0

也許更好的解決方案對我來說它代表了unicode中的字符。我需要可移植性...感謝您的回答... – Votaguz 2010-09-17 06:46:34

0

一些選項:

  • 類型他們在鍵盤上,例如SS德語鍵盤上。

  • 使用組合序列,例如[compose] [s] [s]在我的Linux機器上給出ß。在MS-Windows上,通常是[Alt [2] [2] [5]]。

  • 將它們從角色選擇器(或其他來源)複製並粘貼到編輯器中。

  • unicode.org上查找它們的字符代碼,然後使用\ uXXXX或在應用程序中將它們生成爲字符。 Java char是16位,String由16位字符組成,因此您可以免費獲得Unicode基礎平面。 (一些古腳本等象形文字具有字符代碼> 65536以Unicode,這些不直接支持。)

爲了獲得最佳效果使用編輯器以及能夠使用UTF-8的控制檯,例如Eclipse中。

+0

我使用Eclipse,我嘗試複製和粘貼,但它不起作用。感謝你的回答 :) – Votaguz 2010-09-17 06:44:54

0

Java在內部使用Unicode字符集,因此可以表示任何廣泛的字符。字符集是「理想字符」的任意集合,並沒有真正說出這些字符應該如何在內存,磁盤,網絡或其他任何地方表現出來。

Java通過在內存中使用UTF-16編碼支持Unicode - 所以大多數字符都由16位值表示,但某些字符需要32位或更多位。字符編碼將特定字符集映射到代表它們的字節(或其他值)。並非所有字符編碼都能夠編碼Unicode字符集中的所有字符。例如,US-ASCII使用每個字符7位,因此只能表示128個不同的字符。

在某些情況下,例如在html文檔中,可以控制應使用哪種字符編碼。在其他情況下,假定要使用的編碼並且不容易改變。

它看起來像您正在使用的7位編碼也可能限制爲128個不同的字符。除非你可以改變編碼,否則你會被它支持的任何128個字符集所阻塞。