Web中文乱码——4、Webx+jetty乱码

来源:互联网 发布:iis7 php http503 编辑:程序博客网 时间:2024/06/15 15:33
        上一篇我们介绍了《Web中文乱码——3、Webx编解码基础》。据此,当乱码发生时,我们就可以推断乱码原因并解决。
        其实,只要上文中提到的各项配置都设置成了统一的编码,很多乱码问题就能够解决。相关配置包含<set-locale/>、ContextType、jetty启动参数和velocity。
        除此之外,只有一种可能会发生乱码,那就是ajax请求参数乱码,有两种方案能解决这个问题。
方案1:指定请求的编码
        如果不允许使用IE,那么ajax请求的参数肯定是以UTF-8编码的,因此可以直接在ajax请求url后添加_input_charset参数如下。
http://localhost:8081/myapp/myform?_input_charset=UTF-8  
方案2:js进行url encode
        和《Web中文乱码——2、SpringMVC+Jetty 乱码》类似,js先对参数进行encodeURI,这能将参数中的中文转换为%**格式。接下去,没了中文也就没了乱码。在服务器端拿到参数param后进行URLDecoder.decode(param)即可。
        如果各项配置中的字符集不一致,那么各种情况都可能出现乱码,具体不再展开了,可以参考《Web中文乱码——2、SpringMVC+Jetty 乱码》自行推理。

0 0