`

超链接传中文值乱码

阅读更多

关于超链接传中文值乱码的问题

1.对于某些固定的值得。最好直接传递utf-8编码后的值,这样效率更高。

例如 <a id="" href="/searchAction.act?province=%E5%8C%97%E4%BA%AC">北京</a>

2.对于值不固定,我们要传递某个变量过去,那么需要编码两次 ,解码一次,原因如下

(摘自http://blog.163.com/baijie_1123/blog/static/133104049201112611858184/)

因为在jsp中对中文进行了编码的时候用的是UTF-8的编码方式,而在servlet中调用request.getParameter();方法的时候使用服务器指定的编码格式自动解码一次,所以前台编码一次后台解码一次而解码和编码的方式不同所以造成了乱码的出现
使用两次编码的过程相当于如下代码:
String name=java.net.URLEncoder.encode("测试", "UTF-8");
System.out.println(name);
name=java.net.URLEncoder.encode(name,"UTF-8");
System.out.println(name);
name=java.net.URLDecoder.decode(name, "UTF-8");
System.out.println(name);
System.out.println(java.net.URLDecoder.decode(name, "UTF-8"));

输出为:
      %E6%B5%8B%E8%AF%95
%25E6%25B5%258B%25E8%25AF%2595
%E6%B5%8B%E8%AF%95
测试

第一次编码后将汉字编码为%和字母数字的格式,而第二次编码的时候是对%字母数字进行编码,虽然解码的时候使用的是ISO-8859-1(获取数据时request.getParamter("")会自动解码一次),但是对于%和字母数字而言用ISO-8859-1和UTF-8解码出来的是一样的,此时就回到了汉字被编码过一次的字符串了,当再次进行解码的时候使用UTF-8就回将它转会汉字;

分享到:
评论

相关推荐

    html 中文乱码 HTML超链接中文乱码问题分析及解决方法

    如果直接拼接,传到后台Action的参数对象中后取出会是乱码,需要编码后再拼接到URL上。 解决方法是在Action中添加一个成员变量,保存编码后的中文参数。在vm页面渲染时取出这个变量值,再拼接超链接。 在这里碰到的...

    HTML超链接中文乱码问题分析及解决方法.docx

    本文将分析超链接中文乱码问题的成因和解决方法。 问题分析 在 HTML 超链接中,当我们需要将中文参数作为 GET 请求的参数时,直接拼接中文参数到 URL 上可能会导致乱码。例如,在一个超链接 URL 中,我们需要将...

    JS中页面与页面之间超链接跳转中文乱码问题的解决办法

    在JavaScript中进行页面与页面之间的超链接跳转时,如果链接中包含中文字符,很可能会遇到中文乱码的问题。这种现象通常发生在URL传递过程中,服务器接收到带有乱码的参数时,无法正确解析中文字符,从而导致乱码...

    asp.net乱码解决方法

    对链接中的参数值进行gb2312的编码,这种方法,对方不用进行任何解码操作,直接接收参数则不会出现乱码。  一般提到最多的也就上面4种方法,其它的也跟这些大同小异。仔细分析后,觉得还是第4种方法最适合解决...

    JSP页面中超链接传递中文参数出现乱码问题解决方法

    在使用JSP技术开发Web...总而言之,JSP页面中超链接传递中文参数出现乱码的问题,可以通过在接收页面进行编码转换或者设置请求、响应的字符编码来解决。正确处理字符编码,可以有效地提升Web应用的兼容性和用户体验。

    struts 2中文汉字传值

    在处理中文汉字传值时,可能会遇到编码问题,导致中文字符无法正确传递。以下是对标题和描述中涉及知识点的详细解释: 1. **字符编码问题**:在Java Web应用中,尤其是在与前端交互时,字符编码是关键。页面通常...

    解析WEB开发编码问题

    以UTF-8为例,中文字符“中”在UTF-8字符集中编码为三个字节E4 B8 AD。反过来,这些字节通过UTF-8解码又能恢复为“中”。不同字符集的映射规则不同,所能表示的字符范围也各异。比如,同样的“中”字在GB2312编码中...

    jsp中四种传递参数的方法

    当使用 GET 方法提交时,表单数据会附加在 URL 后面,可能会出现中文乱码。解决方法是,先将获取到的参数值转换为字节数组,再转换成指定编码格式的字符串。 ```java String name = request.getParameter("name"); ...

    Report Builder 3.0

    Report Builder 3.0 支持参数化报表,允许用户在运行时输入特定值以过滤或定制报告内容。这增强了报表的灵活性和交互性,使得报告可以根据用户的需要动态调整。 ### 5. 动态内容与交互性 报表不仅可以包含静态信息...

    Accp5.0 S2-Y2入口考试卷JAVA

    - **中文编码处理**:确保系统能够正确处理中文字符,避免出现乱码问题。 - **功能实现**:所有功能均需正确无误地实现,以确保试卷的完整性和有效性。 ### 评分标准 - **添加**:共20分,未使用JavaScript验证或非...

    企业宣传网站项目中遇到的问题及知识点

    为了避免中文乱码,需要在发送请求前设置请求编码,如 `request.setCharacterEncoding("GBK")`。 3. **商品详细页面获取商品ID**: 在商品详细页面 (`detailProduct.jsp`),使用 `request.getParameter("ID")` ...

    使用iText生成PDF.doc

    示例中使用了`GB2312`编码,对于中文字符的处理,需要确保编码与实际使用的字符集一致,防止乱码问题。 9. **页面设置与样式**: iText允许开发者自定义页面大小、边距、字体样式等,通过`Document`对象的`...

    聊天室模块

    (4)由于本程序使用的是UTF-8编码,所以还需要将工作空间的编码设置为UTF-8编码,否则在包括中文的文件中,将产生乱码。 选择主菜单中的“窗口”/“首选项”,在打开的“首选框”窗口中,展开“常规”节点,并选中...

    FCKeditor使用指南

    ##### 5.3 上传中文文件名的文件会出现乱码 - 解决方法:确保服务器端处理文件名编码的方式与客户端一致。 ##### 5.4 创建中文名目录会出现乱码 - 类似于文件名乱码的问题,需要统一编码处理方式。 ##### 5.5 ...

    我的HTML学习笔记1

    2. **字符编码**:为了避免中文乱码,通常在HTML文档头部使用`&lt;meta charset="UTF-8"&gt;`或`&lt;meta charset="GBK"&gt;`来指定字符集,UTF-8是国际广泛使用的编码,GBK是中国大陆常用的简体中文编码。 3. **HTML标题**:...

    PHP开发实战1200例源码

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则...

    HTML基础.pdf

    在处理中文字符时,需要确保文件编码与浏览器解析的编码一致,通常推荐使用UTF-8编码。如果出现乱码,可以通过在HTML文档的Head部分添加`&lt;meta charset="UTF-8"&gt;`来指定编码。 HTML标签是其核心组成部分,包括开始...

    js通用库函数

    在处理中文文本时,此函数可以帮助确定字符串的编码格式,以避免乱码问题。 #### 10. `isDigit`:判断是否为数字 用于确认字符串是否全部由数字组成,适用于财务数据输入验证、数学计算前的类型检查等场景。 #### ...

    帆软认证报表工程师(FCRA)考试(试卷二).docx

    20. 文件传输编码问题:Windows系统上传至Linux系统时,中文文件名可能乱码,可以使用convmv工具进行转码。 21. 缓存文件夹:Linux下的帆软缓存文件夹是隐藏的,需通过ls-a命令查看。 22. 定时调度升级:从8.0升级...

Global site tag (gtag.js) - Google Analytics