2010-09-16 51 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个字符集所阻塞。