由于前台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"/>
相关推荐
软件版本: V3.3 UTF-8 软件语言: 简体中文 软件授权: 免费版 软件属性: 国产软件 软件大小: 6.59MB 软件操作系统: 2003/ASP/Access 软件作者(开发商):正杨网络 作者(开发商)URL: http://www.mu-cms.com ...
这里需要注意的是,`URLEncoder.encode()`方法的第二个参数必须是服务器端期望的字符集编码,通常是"UTF-8"。 - **设置Content-Type**:在发送AJAX请求时,确保Content-Type头设置为"application/x-...
其中,“XXX”是前台传递过来的含有中文的参数值,“UTF-8”为指定的字符集编码,可根据实际需求进行调整。 #### 方案二:使用`jQuery`简化URL参数编码 1. **前端处理**: - 引入`jQuery`库。 - 对含有中文的参数...
FIX 前台管理中已经审核通过文章,后台还是提示审核的问题 FIX QQ互联暴露匿名帖用户信息的问题 FIX 专题模块可使用字段说明文字错误 FIX 密码偿试次数限制修改回原来的IP验证模式 FIX ...
- 使用`java.net.URLDecoder.decode()`函数,配合正确的编码格式(如"utf-8")解码URL中的中文参数。 - 在Servlet的配置中,通过`<init-param>`标签设置`request.setCharacterEncoding()`和`response.setCharacter...
在JavaScript(JS)中,与后台交互通常涉及Ajax技术,这是一种在不刷新整个页面的情况下从服务器获取数据的方法。本文将详细介绍如何使用JavaScript传递参数到后台,读取数据库数据,然后将这些数据返回到前端进行...
1. **编码一致性**:在整个Web应用中,从前端页面、服务器端处理到数据库交互,都应保持统一的字符编码(如UTF-8)。 2. **前端编码处理**:对于前端页面,无论是使用GET还是POST方式发送请求,都应对参数进行适当的...
2. **后台处理与返回**:在处理完数据后,需要设置响应的字符编码为UTF-8,以确保返回到前端的内容正确显示中文: ```java resp.setContentType("text/html;charset=utf-8"); ``` 3. **前端设置**:确保前端HTML...
<?xml version="1.0" encoding="UTF-8"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans ...
charset=utf-8", success: function(data) { alert(data.d); }, error: function(err) { alert(err); } }); }); ``` 在上面的代码中,我们使用 `$.ajax()` 方法来调用后台方法 `RecordData`,并将参数 `...
它通过`getUrlParam`函数解析URL中的GET参数,并使用unescape解码UTF-8编码的中文字符。然后将结果显示在id为"rec"的span元素中。 2. jqsend.html页面代码: jqsend.html是发送参数的页面。当用户点击超链接时,...
但在这个例子中,由于我们已经在前端对数据进行了`encodeURI()`编码,Servlet无需额外解码,因为`getParameter()`方法会自动解码URL参数。 如果按照以上步骤操作后仍然出现乱码,可能的原因有: - **Tomcat服务器...
fckconfig.js总配置文件,可用记录本打开,修改后将文件存为utf-8 编码格式找到: FCKConfig.TabSpaces = 0 ; 改为FCKConfig.TabSpaces = 1 ; 即在编辑器域内可以使用Tab键 如果你的编辑器还用在网站前台的话,...
这样,Tomcat服务器在接收请求时,会自动按照UTF-8的编码格式处理所有传入的参数,无需在客户端代码中显式地进行多次编码。 具体配置如下: ```xml connectionTimeout="20000" redirectPort="8443" ...
- **商户名称(corpName)**:字符串类型,长度最大为62个字符,只能包含字母、数字和汉字,其中汉字编码格式统一为utf-8。 - **二级商户号(subCorpID)**:字符串类型,长度最大为15个字符,只能包含字母和数字,非...
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`类...
一、网站系统采用国际标准的UTF-8编码编写,支持全球各种语言(包括简体中文、繁体中文、英文、日文等等)显示,各个地区访问都不乱码; 二、全站的文字、系统栏目、分类、新闻、信息内容及产品等等均可通过后台添加和...
charset=utf-8", dataType: "json", success: function (response) { $("#contentArea").find("label").text(response.d); // 更新Label内容 }, error: function (xhr, status, error) { console.error(...
charset=UTF-8",是为了告诉服务器端发送的数据类型是JSON,编码格式是UTF-8。 回调函数中的data参数包含了从服务器返回的数据。在AJAX的成功回调函数中,data参数是一个对象,如果后台服务返回了JSON对象,需要...