用数字表示
不怕明说,其实计算机只理解数字。但下面这一点可能就没那么明显 ― 因为计算机只理解数字,所以它们需要用某种形式把数字值映射为相应的字符,这样才能显示文本。就是这些映射(或 字符集)才使得计算机可以理解文本。例如,就为了这种映射,早期的台式机使用了 ASCII。当一台使用 ASCII 的计算机存储数字 72、101、108 和 112 时,它便知道要显示“Help”这个单词,因为在 ASCII 中,数字 72 是 H 的值、101 是 e 的值、108 是 l 的值、112 是 p 的值。但如果这台计算机是早期的 IBM 大型机(它使用 EBCDIC 而不是 ASCII),“Help”这个单词将用数字 200、133、147 和 151 代表。
字符集基础知识
在向 Java 语言迁移时, java.nio.charset 包中有三个类帮助进行这种映射: Charset 、 CharsetEncoder 和 CharsetDecoder 。这些类相互配合,这样您就可以先采用一种映射,然后将其转换为另一种映射。在从另一种映射转换为 Java 映射(Unicode)时,您可以使用解码器(decoder)。然后,如果您需要从 Java 映射(Unicode)再转换为另一种映射(或转换回原来那种映射)时,您可以使用编码器(encoder)。您无法用 java.nio.charset 包在两种非 Unicode 格式之间直接转换,但您可以通过一种中间的 Unicode 格式在两种非 Unicode 格式间进行转换。
在得到一个解码器或编码器之前,您需要获得用于特定映射的 Charset 。例如,US-ASCII 是用于 7 位 ASCII 字符集的映射的名称。您只需象下面这样把该名称传递到 Charset 的 forName() 方法中即可:
Charset charset =
Charset.forName("US-ASCII");
一旦有了 Charset ,只需按如下所示请求 CharsetDecoder 和 CharsetEncoder :
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!