案例分析
?Ajax中通过XMLHttpRequest对象传输数据
?现象:服务器与客户端输入输出均采用默认编
码/解码方式时,得到的字符流都是乱码
?原因:XMLHttpRequest均基于UTF-8进行编/解码字节流?解决办法:
?
Javascript没有编解码函数,由服务器端完成UTF-8的编解码
AJAX字符编码问题
服务器端:接收客户端XMLHttpRequest传输的数据BufferedReader d= newBufferedReader(new
InputStreamReader(request.getInputStream(\String utfisoStrinStr = d.readLine();String unicodeStr = new String
(utfisoStrinStr.getBytes(\String gbkisoStr = new String
(unicodeStr.getBytes(\然后进行下一步处理,入库,写日志等
Java国际化应用设计
?
一个国际化应用中,ServletRequest和
ServletResponse的编码方式不应该按照服务器设置成固定的字符集,而是面向客户端语言环境进行输入输出编码自适应
???
Servlet源代码不要有中文,用ResourceBundle
正确的编码不一定能正确显示,正确的显示还需要相应的前端显示系统(字库)的支持
如果应用基于Unicode来处理,并使用UTF-8做集中存储,这最便于根据客户端语言环境做本地化输出
?
如果后台数据采用Unicode编码存储,然后根据需要按指定字符集编码/解码,则应用几乎不受前端应用所处环境的影响
Java应用环境的部署
?环境变量配置
?path:?java_home:?classpath:
?JVM类装载机制
?一切依赖classpath环境变量
?如果存在相同的jar或class,只装载前面那
个。故类冲突时,类或jar在classpath中的位置也非常重要

