HTML超链接中文乱码

摘要:
Vm中的超链接URL需要与中文拼接,作为Get请求的参数。默认字符集将在Eclipse中运行main()方法,在Tomcat中运行Web应用程序。


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)方法依赖于平台字符集。


免责声明:文章转载自《HTML超链接中文乱码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL主从报错1872 Slave failed to initialize relay log info structure from the repository【原创】js数组转为json下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

node.js和express.js中添加验证码

验证码在平时访问网站中非常常见,能够有效的避免机器操作,恶意攻击 比如:学信网中https://www.chsi.com.cn/ 用户输入三次密码不正确的时候,再输入密码提交的时候就该提醒你输入验证码,那为什么会存在验证码,验证码是怎么运作的呢? 抱歉,画的有点像鬼画符,哈哈,总结来说就是,生成验证码后会在cookie中存储验证码,然后再用验证码生成一张...

net Core做一个webApi的简单实例

用NetCore 和Dapper 和mySql做一个简单的实例, 一准备工作 1:VS2017+windos系统,也可以用其他的操作系统和工具 2:一台Cenetos的虚拟机或者虚拟机 二:开始 1:用微软官方的netCore的ToDo项目改造,项目的主体结构如下图,源连接 https://docs.microsoft.com/zh-cn/aspnet/c...

http重定向到https

<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule na...

黑鹰破解笔记(2)

一、概论 壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳两种UPX ASPCAK TELOCK PELITE NSPACK ...ARMADILLO ASPROTECT ACPROTECT EPE SVKP ...顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。当然加密壳的保护能力要强得多!...

Java排序(一)实现类的排序

  类按照类中的某一个属性(或者多个属性)来对类的对象进行排序,   有 3 种方法可以实现,   1、Collections.sort 排序重写 compare方法   2、实现Comparable<T>接口   3、通过自定义比较器类的方式实现排序   以下,实现一个类的排序 class Person{ public Strin...

quartz定时任务_job实现类中获取传参02

1.main方法: public static void main(String[] args) throws SchedulerException { // TODO Auto-generated method stub // 创建一个JobDetail实例 将HelloJob类添加到JobDetail中 JobDetail jobDetail = J...