首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

中文化和国际化有关问题权威解析之四:Java中文化和国际化攻略

2012-08-30 
中文化和国际化问题权威解析之四:Java中文化和国际化攻略一般攻略既然在Java内部是直接使用Unicode表示一

中文化和国际化问题权威解析之四:Java中文化和国际化攻略
一般攻略

既然在Java内部是直接使用Unicode表示一切字符的,表达中文自然不成问题。因此所谓的中文问题并不是由Java本身引起的。而是因为对Java和Unicode理解不透或应用不当引起的。下面列出的原则,是解决一切中文问题的总纲:

WEB应用攻略

除了Unicode以外,无论何种本地字符集,都不能代表所有字符。这将导致一些问题:

  1. 上述页面是用

    BIG5显示的。在文本框中打入简体中文字“我爱”,然后submit。在结果页面中,我们可以看到“我”被转换成了BIG5编码
  2. contentType.setParameter("charset",MimeUtility.mimeCharset("UTF-8"));
  3. part.setContent("...textorHTMLcontent...",contentType.toString());

值得注意的是,

RFC 822标准规定,e-mail的header不能包含非ASCII编码。也就是说,e-mail的主题(subject)不能包含中文。那我们怎样在e-mail的subject中发送中文呢?还好,另一个标准RFC 2047定义了如何将非ASCII的header转换成ASCII的规则。我们不需要了解这个规则的细节,只要调用javax.mail.internet.MimeUtility就可以完成转换了:
    importjavax.mail.internet.MimeMessage;
  1. importjavax.mail.internet.MimeUtility;...
  2. MimeMessagemessage;
  3. ...message.setSubject(MimeUtility.encodeText("...e-mail的主题...",
  4. MimeUtility.mimeCharset("UTF-8"),null));

大结论

完成同一个目标,往往有许多种途径,总有一些途径是比较好的,也有一些是不太好的。那些不太好的途径,虽然也能完成任务,却会导致很多潜在的问题。这些问题可能要在一定的条件下才能表现出来。例如,我们公司的Java程序以及Oracle数据库,从一开始就没有正确使用Unicode来存取文本,结果导致了一系列的问题。而要修正这样的问题,代价是比较大的。

怎样的途径是好的呢?一般来说,符合业界标准的,或是市场标准的实现途径,是我们首选的途径。所以我们设计任何程序之前,一定要充分了解相应的标准,不能不求甚解,完成任务了事。

Unicode标准及相关技术,不仅是解决中文问题的关键,而且是以统一的方法解决国际所有语言文字的问题的最好途径。使用好这些标准,必将为我们公司的产品的进一步向国际化发展,打好坚实的基础。

?

热点排行