zoukankan      html  css  js  c++  java
  • HTML超链接中文乱码


    Vm中一个超链接URL需要拼接中文作为Get请求的参数。如果直接拼接,传到后台Action的参数对象中后取出会是乱码,需要编码后再拼接到URL上。 

    解决方法是在Action中添加一个成员变量,保存编码后的中文参数。在vm页面渲染时取出这个变量值,再拼接超链接。

    在这里碰到的问题是:调用java.net.URLEncoder的encode()方法时,如果没有显示指定字符集参数,那么URLEncoder会使用默认字符集。这个默认字符集在Eclipse里跑main()方法和在Tomcat里跑Web应用,得到的结果不一样,所以影响了编码的结果。 

        /**
         * Translates a string into <code>x-www-form-urlencoded</code>
         * format. This method uses the platform'sdefault encoding
         * as the encoding scheme to obtain thebytes for unsafe characters.
         *
         * @param  s   <code>String</code> to betranslated.
         * @deprecated The resulting string mayvary depending on the platform's
         *             default encoding. Instead, use theencode(String,String)
         *             method to specify the encoding.
         * @return  the translated <code>String</code>.
         */
        @Deprecated
        public static String encode(String s) {
     
            String str = null;
     
            try {
            str = encode(s, dfltEncName);
            } catch(UnsupportedEncodingException e) {
                 // The system should always have theplatform default
            }
     
            return str;
    }

    方法的注释中也说明了不建议使用的原因是,这个encode(String)方法依赖于平台字符集。


  • 相关阅读:
    第十六周总结
    第十五周学习进度
    输出最长字符串链
    第二阶段冲刺10
    第二阶段冲刺09
    第二阶段冲刺08
    输入法评价
    第十四周进度总结
    collections模块
    shutil模块(了解)
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157786.html
Copyright © 2011-2022 走看看