萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

查看: 492|回复: 0

1-1-16-1-7 java的中文问题的一点点研究

[复制链接]
发表于 2003-2-8 00:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x

  1. 发信人: lithium (lithium), 信区: Java      
  2. 标  题: java的中文问题的一点点研究
  3. 发信站: BBS 水木清华站 (Fri Jun 29 15:26:27 2001)

  4. 我知道java的中文问题已经研究烂了,精华区我也看,可还是没有彻底理解。
  5. 只好自己动手做了一下实验,发现:

  6. 中文在源文件中为GB2312编码 --> 内存中为 unicode 编码 --> class文件中为UTF-8编码

  7. 实验过程如下:
  8. 写一个最简单的class
  9. public class Test
  10. {
  11.         public static void main(String[] args){         
  12.                 String str = "aaaaaaaaaaaaaaa大aaaaaaaaaaaaaaa";
  13.                 System.out.println(str);
  14.         }
  15. }
  16. 那么多a是为了定位汉字在文件中的位置。

  17. 用 javac -encoding GBK 进行编译
  18. class文件中的"大"字变成他的UTF-8编码。反编译,“大”字变成了"\u5927",
  19. 是他的unicode编码。

  20. 用javac -encoding iso-8859-1进行编译
  21. class文件中"大"字变成了四个字节,其实就是他的GB2312编码拆分成两个字节,
  22. 再分别进行UTF-8编码。

  23. 至此,我也终于明白的-encoding参数作用,就是按照指定的编码方式去编译源文件。
  24. 只要编译时的编码方式与操作系统的内码相同,就可以正常显示。

  25. 附:
  26. "大"字的编码
  27. GB2312         B4 F3
  28. unicode        59 27
  29. UTF-8          E5 A4 A7
  30. "大"字的GB编码拆分为两个byte
  31. B4的UTF-8编码   C2 B4
  32. F3的UTF-8编码   C3 B3
复制代码
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-6-15 00:15 , Processed in 1.672028 second(s), 17 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表