最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&, ',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
============================================================
做项目时,明明在 web.xml和struts中进行了字符设置 utf-8,但是 从前台 js传过来的参数还是乱码问题,在后台使用request.setCharacterEncoding("UTF-8");还是不行,上网上查了查原来js也有转码的方法,encodeURIComponent() 和 encodeURI(),下面来解决一下问题
例如 js 代码为:
var text= "关键字";
Location.href= "getChildNodeByKeyword.action?keyword="+text;
传到后台的 keyword是乱码
解决方法1:
var text= encodeURIComponent("关键字");
Location.href= "getChildNodeByKeyword.action?keyword="+text;
解决方法2:
var text= "关键字";
Location.href= encodeURI("getChildNodeByKeyword.action?keyword="+text);
自己感觉encodeURIComponent() 和 encodeURI()的区别是 :
见上面的说明!
===================================
系统应用测试中,使用了如下语句:
UTF-8编码,测试成功,服务端获取正常:
decisionMaker = encodeURI(decisionMaker).replace(new RegExp("&", 'g'), "%26");//转码
===============Java设置编码格式=========
首先介绍两种字符集 gb2312 和 gbk
。gb2312 简体中文编码
。gbk 中文字符编码 包括繁体中文
1. 指定jsp文件里内容的的编码方式
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
2. 指定html文件里内容的编码方式
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
3. 当响应用户的请求时,输出到用户浏览器上的编码方式
<%@ page contentType="text/html"; charset="gb2312"%>
相当于生成的代码 response.setContentType("text/html; charset=gb2312");
4. 把用户传递过来的参数作为指定的编码
request.setCharacterEncoding("gb2312");
5. 对比
request.setCharacterEncoding("gb2312"); //设置输入编码格式
response.setContentType("text/html; charset=gb2312"); //设置输出编码格式
[转载 http://blog.csdn.net/jpr1990/article/details/6960298]
分享到:
相关推荐
解决中文乱码问题的关键在于正确处理字符编码。在安卓系统中,大部分蓝牙打印机支持GBK或UTF-8编码。当发送中文字符串时,必须确保字符串被正确编码为蓝牙打印机支持的格式。例如,如果你的小程序默认使用的是...
支持任意纯文本文件转码(解决任意纯文本文件乱码问题),其能够处理的文件包括但不限于以下几种: 纯文本文件 (.txt,.csv ) 这些文件通常只包含纯文本,没有特殊的格式或样式。 编程语言的源代码文件 Python (.py...
在Java开发中,遇到中文乱码问题是一种常见的挑战,特别是在处理URL时。URL中文乱码问题主要是由于URL编码和解码过程中的不一致导致的。下面将详细介绍如何解决这个问题,并探讨几种常用的方法。 首先,我们需要...
解决JavaScript乱码问题的方法主要包括: 1. 指定编码:在读取文件或发送请求时,明确指定文件或数据的编码。例如,使用Node.js的`fs`模块读取文件时,可以设置`encoding`参数。 ```javascript const fs = require...
在JS中处理GBK编码,主要是为了在页面间传递参数或读取/写入GBK格式的数据时避免出现乱码问题。 首先,我们需要了解JavaScript原生并不支持GBK编码,它默认使用的是UTF-8编码。因此,如果你的页面或服务器使用GBK...
因此,理解字符编码的基本原理,以及如何在C++中处理它们,对于避免和解决乱码问题至关重要。JSONCPP库提供了一套API来方便JSON数据的处理,但用户仍需关注编码问题,以确保数据的正确性。 在提供的压缩包文件...
- 在执行SQL语句时,如果包含中文字符串,确保字符串已正确转码,避免在数据库中存储时乱码。 9. **国际化和本地化** - 使用`<fmt:setLocale>`和`<fmt:setBundle>`标签时,确保资源文件的编码与JSP页面保持一致。...
万能转码函数,解决中文字符转码问题、GBK转utf8问题,utf8转gbk等等各种转码、乱码问题。
在JavaServer Pages (JSP) 开发中,页面间的参数传递是常见的操作,尤其是在处理包含汉字的参数时,由于编码问题可能会导致乱码。本文主要介绍如何在JSP中正确地进行汉字参数的转码与解码,确保数据在页面间传递时...
当我们在Web开发中遇到URL地址栏传递中文参数出现乱码的问题时,一个常见的解决办法是使用JavaScript中的escape函数进行转码。这个函数能够将字符串中的中文字符转换为一个十六进制形式的URL编码字符串。在某些...
例如,当用户在前端输入中文时,如果直接将这些中文字符串发送到服务器,可能会出现乱码问题。因此,需要在前端对中文进行编码,在后端接收到数据后再进行解码。 ### 前端字符集转码 在JavaScript中,可以使用`...
Java 中文乱码是指在 Java 应用程序中,中文字符在传输、存储和显示过程中出现的乱码问题。这种问题可能会出现在 Java 与数据库、JSP、文件流之间的数据交换过程中。本文将总结 Java 中文乱码的常见情况和解决方法。...
总的来说,"request拦截转码资料"主要涉及到前后端通信时的字符编码问题,通过使用Servlet Filter进行适当的解码操作,可以有效解决中文乱码问题。理解并掌握这一知识点,对于构建健壮的、支持多语言的Web应用至关...
在进行Web开发的过程中,经常会遇到页面间的跳转以及数据传递的情况。当涉及到中文等非英文...通过上述分析和解决方案,我们可以有效地解决页面间跳转传递中文参数时出现的乱码问题,提高Web应用的用户体验和稳定性。
当使用Ajax发送请求时,JavaScript默认使用ISO-8859-1编码,因此需要对包含中文的参数进行编码。一种常见做法是在发送请求前使用`encodeURI()`或`encodeURIComponent()`方法对参数进行编码,例如`var url = ...
"GBK与UTF8编码批量转码工具"就是为了解决不同编码格式之间转换问题而设计的一款实用软件。这款工具能够帮助用户快速有效地将大量文件从GBK编码转换为UTF8编码,或者反之,尤其对于像Discuz!这样的论坛模板调整来说...
在JavaScript编程语言中,字符编码是处理字符串时不可或缺的一部分。主要涉及到两种常见的字符编码:ASCII和Unicode。本文将深入探讨这两个概念以及它们在JavaScript中的应用。 **ASCII编码**(American Standard ...
描述部分强调了在JavaScript中进行Base64编码时,解决中文字符乱码问题的重要性。在编码过程中,首先使用`escape()`函数对中文字符进行编码处理。`escape()`函数能够把中文字符转换为URL编码的字符串,以此解决直接...