中文化和国际化问题权威解析之四:Java中文化和国际化攻略
一般攻略
既然在Java内部是直接使用Unicode表示一切字符的,表达中文自然不成问题。因此所谓的中文问题并不是由Java本身引起的。而是因为对Java和Unicode理解不透或应用不当引起的。下面列出的原则,是解决一切中文问题的总纲:
WEB应用攻略
除了Unicode以外,无论何种本地字符集,都不能代表所有字符。这将导致一些问题:
上述页面是用
BIG5显示的。在文本框中打入简体中文字“我爱”,然后submit。在结果页面中,我们可以看到“我”被转换成了BIG5编码值得注意的是,
RFC 822标准规定,e-mail的header不能包含非ASCII编码。也就是说,e-mail的主题(subject)不能包含中文。那我们怎样在e-mail的subject中发送中文呢?还好,另一个标准RFC 2047定义了如何将非ASCII的header转换成ASCII的规则。我们不需要了解这个规则的细节,只要调用javax.mail.internet.MimeUtility就可以完成转换了:大结论
完成同一个目标,往往有许多种途径,总有一些途径是比较好的,也有一些是不太好的。那些不太好的途径,虽然也能完成任务,却会导致很多潜在的问题。这些问题可能要在一定的条件下才能表现出来。例如,我们公司的Java程序以及Oracle数据库,从一开始就没有正确使用Unicode来存取文本,结果导致了一系列的问题。而要修正这样的问题,代价是比较大的。
怎样的途径是好的呢?一般来说,符合业界标准的,或是市场标准的实现途径,是我们首选的途径。所以我们设计任何程序之前,一定要充分了解相应的标准,不能不求甚解,完成任务了事。
Unicode标准及相关技术,不仅是解决中文问题的关键,而且是以统一的方法解决国际所有语言文字的问题的最好途径。使用好这些标准,必将为我们公司的产品的进一步向国际化发展,打好坚实的基础。
?