`

前台页面utf-8,通过url传中文参数的解决方法

阅读更多

由于前台jsp页面用到ajax,默认使用utf8编码格式,但另一个链接中又需要通过url传含有中文的参数,jboss中的server.xml中配置的urlEncoding是GBK(由于项目原因不能更改),故在原始写法的传参过程中,中文会变成乱码,以下提供解决这种乱码的方法。

对于url要传的中文参数进行两次编码(注意是两次),即encodeURI(encodeURI(val))

 

传到后台action中通过解码获取中文数:java.net.URLDecoder.decode(request.getParameter("val"),"UTF-8")

 

以下再记录几个解决乱码的方法(网上摘抄):

一、对传递过来的参数进行编码转换

  key=new String(key.getBytes("ISO-8859-1"),"UTF-8");

其中ISO-8859-1是tomcat默认的编码类型

缺点:当服务器的编码改成GBK  该方法就会失去作用 当然改成

key=new String(key.getBytes("GBK"),"UTF-8");

二、修改服务器(tomcat的编码)

server.xml

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443"

URLEncoding=UTF8 />

 

缺点:当tomcat编码进行修改 又会出现问题

一、 二、共同的缺点就是依赖于Tomcat的编码环境

三、先将中文进行编码后再传递(推荐)

   1、Js方式:

      需要进行两次编码

客户端

          Var key=encodeURI(”中中”);

                   Key= encodeURI(key);

服务器端

                   因为服务器端在获取客户端传递过来的参数时已经进行了一次解码 所以我们自己只需解一次码就行了

                   java.net.URLDecoder.decode(传过来的参数);

   2、利用Struts2的<s:a>标签

<s:a action=””>

<s:param name="key" value="%{@java.net.URLEncoder@encode(key, 'utf-8')}"></s:param>

</s:a>

Sturst2默认不允许直接用OGNL表达式调用方法  所以需要在Struts.Xml加入

<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>

 

分享到:
评论

相关推荐

    正杨CMS-企业网站内容管理系统V3.3 UTF-8

    软件版本: V3.3 UTF-8 软件语言: 简体中文 软件授权: 免费版 软件属性: 国产软件 软件大小: 6.59MB 软件操作系统: 2003/ASP/Access 软件作者(开发商):正杨网络 作者(开发商)URL: http://www.mu-cms.com ...

    ajax提交中文乱码解决方法

    这里需要注意的是,`URLEncoder.encode()`方法的第二个参数必须是服务器端期望的字符集编码,通常是"UTF-8"。 - **设置Content-Type**:在发送AJAX请求时,确保Content-Type头设置为"application/x-...

    struts2乱码处理

    其中,“XXX”是前台传递过来的含有中文的参数值,“UTF-8”为指定的字符集编码,可根据实际需求进行调整。 #### 方案二:使用`jQuery`简化URL参数编码 1. **前端处理**: - 引入`jQuery`库。 - 对含有中文的参数...

    Discuz! X2 R20120628 简体UTF-8.zip

    FIX 前台管理中已经审核通过文章,后台还是提示审核的问题 FIX QQ互联暴露匿名帖用户信息的问题 FIX 专题模块可使用字段说明文字错误 FIX 密码偿试次数限制修改回原来的IP验证模式 FIX ...

    java知识整理

    - 使用`java.net.URLDecoder.decode()`函数,配合正确的编码格式(如"utf-8")解码URL中的中文参数。 - 在Servlet的配置中,通过`&lt;init-param&gt;`标签设置`request.setCharacterEncoding()`和`response.setCharacter...

    js传参数到后台读取数据再传到前台的例子

    在JavaScript(JS)中,与后台交互通常涉及Ajax技术,这是一种在不刷新整个页面的情况下从服务器获取数据的方法。本文将详细介绍如何使用JavaScript传递参数到后台,读取数据库数据,然后将这些数据返回到前端进行...

    struts乱码讲解

    1. **编码一致性**:在整个Web应用中,从前端页面、服务器端处理到数据库交互,都应保持统一的字符编码(如UTF-8)。 2. **前端编码处理**:对于前端页面,无论是使用GET还是POST方式发送请求,都应对参数进行适当的...

    解决javaWEB中前后台中文乱码问题的3种方法

    2. **后台处理与返回**:在处理完数据后,需要设置响应的字符编码为UTF-8,以确保返回到前端的内容正确显示中文: ```java resp.setContentType("text/html;charset=utf-8"); ``` 3. **前端设置**:确保前端HTML...

    flex-ibatis-sping项目的创建

    &lt;?xml version="1.0" encoding="UTF-8"?&gt; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans ...

    Asp.net中JQuery、ajax调用后台方法总结

    charset=utf-8", success: function(data) { alert(data.d); }, error: function(err) { alert(err); } }); }); ``` 在上面的代码中,我们使用 `$.ajax()` 方法来调用后台方法 `RecordData`,并将参数 `...

    jQuery通过控制节点实现仅在前台通过get方法完成参数传递

    它通过`getUrlParam`函数解析URL中的GET参数,并使用unescape解码UTF-8编码的中文字符。然后将结果显示在id为"rec"的span元素中。 2. jqsend.html页面代码: jqsend.html是发送参数的页面。当用户点击超链接时,...

    jQuery Ajax传值到Servlet出现乱码问题的解决方法

    但在这个例子中,由于我们已经在前端对数据进行了`encodeURI()`编码,Servlet无需额外解码,因为`getParameter()`方法会自动解码URL参数。 如果按照以上步骤操作后仍然出现乱码,可能的原因有: - **Tomcat服务器...

    fckedit编辑器

    fckconfig.js总配置文件,可用记录本打开,修改后将文件存为utf-8 编码格式找到: FCKConfig.TabSpaces = 0 ; 改为FCKConfig.TabSpaces = 1 ; 即在编辑器域内可以使用Tab键 如果你的编辑器还用在网站前台的话,...

    JQuery 传送中文乱码问题的简单解决办法

    这样,Tomcat服务器在接收请求时,会自动按照UTF-8的编码格式处理所有传入的参数,无需在客户端代码中显式地进行多次编码。 具体配置如下: ```xml connectionTimeout="20000" redirectPort="8443" ...

    民生银行接口对接201810181

    - **商户名称(corpName)**:字符串类型,长度最大为62个字符,只能包含字母、数字和汉字,其中汉字编码格式统一为utf-8。 - **二级商户号(subCorpID)**:字符串类型,长度最大为15个字符,只能包含字母和数字,非...

    ASPCMS开源企业网站管理系统 v2.6.2

    10.修复UTF-8模式时首页错误提示乱码问题 v2.5.9 2016年7月17日 1.修复{aspcms:prevtitle}标签无法解析 2.修改{aspcms:top}对应top.html,添加{aspcms:head}、{aspcms:left}、{aspcms:comm} 3.修复UTF-8模板时生成...

    电子商务技术课程设计报告

    - 页面通过获取URL参数`bookId`来查询特定书籍的详细信息,增强了用户体验。 ##### 后台逻辑处理 - 使用JavaBean进行业务逻辑处理,例如获取书籍列表、获取特定书籍的详细信息等。 - 通过调用`database.BookDB`类...

    汇成企业网站管理系统 v4.6.rar

    一、网站系统采用国际标准的UTF-8编码编写,支持全球各种语言(包括简体中文、繁体中文、英文、日文等等)显示,各个地区访问都不乱码; 二、全站的文字、系统栏目、分类、新闻、信息内容及产品等等均可通过后台添加和...

    前台刷新updatePanel

    charset=utf-8", dataType: "json", success: function (response) { $("#contentArea").find("label").text(response.d); // 更新Label内容 }, error: function (xhr, status, error) { console.error(...

    JS AJAX前台如何给后台类的函数传递参数

    charset=UTF-8",是为了告诉服务器端发送的数据类型是JSON,编码格式是UTF-8。 回调函数中的data参数包含了从服务器返回的数据。在AJAX的成功回调函数中,data参数是一个对象,如果后台服务返回了JSON对象,需要...

Global site tag (gtag.js) - Google Analytics