赛迪网 > IT技术 Java > 最新更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Java中文问题详解之底层编码解剖 (1)

发布时间:2005.09.22 20:54     来源:赛迪网开发者论坛    作者:IHH

预备知识:

1.字节和unicode

Java内核是unicode的,就连class文件也是,但是很多媒体,包括文件/流的保存方式是使用字节流的。

因此Java要对这些字节流经行转化。char是unicode的,而byte是字节.Java中byte/char互转的函数在sun.io的包中间有。其中ByteToCharConverter类是中调度,可以用来告诉你,你用的Convertor。其中两个很常用的静态函数是。





public static ByteToCharConverter 
getDefault() ;

ublic static ByteToCharConverter 
getConverter(String encoding);

如果你不指定converter,则系统会自动使用当前的Encoding,GB平台上用GBK,EN平台上用8859_1

我们来就一个简单的例子:

"你"的gb码是:0xC4E3 ,unicode是0x4F60

你用:

encoding="gb2312";

yte b[]={(byte)'\u00c4',(byte)'\u00E3'};

convertor=ByteToCharConverter.getConverter(encoding);

char [] c=converter.convertAll(b);

for(int i=0;i<c.length;c++)

{

***.out.println(Integer.toHexString(c[i]));

}

1 2 3 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 颠覆Java开发的定律:无需创建对象 (09-22) · 深入分析Windows和Linux动态库应用异同 (09-21)
· 精通Hibernate之映射继承关系(五) (09-21) · 精通Hibernate之映射继承关系(二) (09-21)
· Java和JSP编程中应该注意的几个常见问题 (09-21) · 在Eclipse 3.1中体验J2SE 5.0新特性之一 (09-21)
· 技术专题巨献:内存泄漏,走开! (09-21) · Java程序如何穿透带有密码验证的代理 (09-21)
· Java新手必读:一飞冲天Java学习的捷径 (09-21) · Linux操作系统的内核编译内幕详解 (09-21)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 回顾ERP市场发展经历 提醒CIO选型需理性
· 网银系统拥堵 SOA从治病良方到罪魁祸首
· 国产ITIL运维先行者 四大厂商角力BI市场
· 金融行业GSN专题解决方案 企业网解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统