`

Java的中文处理学习笔记:Hello Unicode(3)

阅读更多
[size=medium]http://www.chedong.com/tech/hello_unicode_3.html 作者: 车东 发表于:2002-07-11 22:07 最后更新于:2007-04-12 11:04 以前能够配置让一个WEB应用能够在GBK方式编码的中文Windows2000服务器上和按ISO-8859-1方式编码的GNU/Linux上都能够正确的显示中文一直让我迷惑了很久。我仔细想了一下,后来终于想明白了,在一个国际化的应用中:ServletRequest和ServletResponse的编码/解码方式的确不应该根据服务器设置成固定的字符集,而应该是 面向客户端语言环境进行输入/输出编码方式的自适应 。一个按照国际化规范设计的WEB应用中: 在Servlet的源代码中尽量不要有中文:因为在MVC模式中,Servlet主要是控制器(C)的角色,因此,应该通过ResourceBundle机制由Servlet控制转向到相应的显示器(JSP或者XSLT)中,所以应该将与本地界面语言相关的界面显示的部分从Servlet和后台的模块中完全剥离出来,放到相应的 ResourceBundle 文件中或者XSLT文件中。这样源程序里完全是英文,编译时完全不需要考虑字符集的问题。 如果Servlet实在需要包含中文,则需要设置应用服务器的Javac编译选项,加上-encoding选项成系统缺省的字符集,如果把用中文编写的字符按照英文方式解码编译,然后再按照英文方式输出,虽然结果表面正确,实际上都成了面向“字节”编程。 *.在Servlet层,应该像GOOGLE搜索引擎那样,设计成能够根据客户端浏览器的语言环境自适应输出,为了判断浏览器的语言Servlet中应该有类似以下的代码: public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { //从HTTP请求的头信息中获取客户端的语言设置 String clientLanguage = req.getHeader("Accept-Language")[/size]
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics