`

JavaScript(js) 前台 参数传递乱码 转码 问题--已解决! 中文字符乱码[转载]

 
阅读更多

最多使用的应为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编码。当发送中文字符串时,必须确保字符串被正确编码为蓝牙打印机支持的格式。例如,如果你的小程序默认使用的是...

    js乱码转换js乱码转换

    解决JavaScript乱码问题的方法主要包括: 1. 指定编码:在读取文件或发送请求时,明确指定文件或数据的编码。例如,使用Node.js的`fs`模块读取文件时,可以设置`encoding`参数。 ```javascript const fs = require...

    java中文乱码之解决URL中文乱码问题的方法

    在Java开发中,遇到中文乱码问题是一种常见的挑战,特别是在处理URL时。URL中文乱码问题主要是由于URL编码和解码过程中的不一致导致的。下面将详细介绍如何解决这个问题,并探讨几种常用的方法。 首先,我们需要...

    js实现GBK编码,解决乱码

    在JS中处理GBK编码,主要是为了在页面间传递参数或读取/写入GBK格式的数据时避免出现乱码问题。 首先,我们需要了解JavaScript原生并不支持GBK编码,它默认使用的是UTF-8编码。因此,如果你的页面或服务器使用GBK...

    jsoncpp 写入乱码解决版本

    因此,理解字符编码的基本原理,以及如何在C++中处理它们,对于避免和解决乱码问题至关重要。JSONCPP库提供了一套API来方便JSON数据的处理,但用户仍需关注编码问题,以确保数据的正确性。 在提供的压缩包文件...

    JSP乱码 N种解决方案

    - 在执行SQL语句时,如果包含中文字符串,确保字符串已正确转码,避免在数据库中存储时乱码。 9. **国际化和本地化** - 使用`&lt;fmt:setLocale&gt;`和`&lt;fmt:setBundle&gt;`标签时,确保资源文件的编码与JSP页面保持一致。...

    JS字符集转码函数

    万能转码函数,解决中文字符转码问题、GBK转utf8问题,utf8转gbk等等各种转码、乱码问题。

    jsp中页面间传汉字参数转码的方法.docx

    在JavaServer Pages (JSP) 开发中,页面间的参数传递是常见的操作,尤其是在处理包含汉字的参数时,由于编码问题可能会导致乱码。本文主要介绍如何在JSP中正确地进行汉字参数的转码与解码,确保数据在页面间传递时...

    地址栏传递中文参数乱码在js里用escape转码

    当我们在Web开发中遇到URL地址栏传递中文参数出现乱码的问题时,一个常见的解决办法是使用JavaScript中的escape函数进行转码。这个函数能够将字符串中的中文字符转换为一个十六进制形式的URL编码字符串。在某些...

    前后台字符集转码.txt

    例如,当用户在前端输入中文时,如果直接将这些中文字符串发送到服务器,可能会出现乱码问题。因此,需要在前端对中文进行编码,在后端接收到数据后再进行解码。 ### 前端字符集转码 在JavaScript中,可以使用`...

    txt乱码解决处理文本文件转码编码csv器gbk互转utf-8自动批量工具html,js,css,md,json,log,py

    支持任意纯文本文件转码(解决任意纯文本文件乱码问题),其能够处理的文件包括但不限于以下几种: 纯文本文件 (.txt,.csv ) 这些文件通常只包含纯文本,没有特殊的格式或样式。 编程语言的源代码文件 Python (.py...

    java中文乱码

    Java 中文乱码是指在 Java 应用程序中,中文字符在传输、存储和显示过程中出现的乱码问题。这种问题可能会出现在 Java 与数据库、JSP、文件流之间的数据交换过程中。本文将总结 Java 中文乱码的常见情况和解决方法。...

    request拦截转码资料

    总的来说,"request拦截转码资料"主要涉及到前后端通信时的字符编码问题,通过使用Servlet Filter进行适当的解码操作,可以有效解决中文乱码问题。理解并掌握这一知识点,对于构建健壮的、支持多语言的Web应用至关...

    页面间跳转乱码

    在进行Web开发的过程中,经常会遇到页面间的跳转以及数据传递的情况。当涉及到中文等非英文...通过上述分析和解决方案,我们可以有效地解决页面间跳转传递中文参数时出现的乱码问题,提高Web应用的用户体验和稳定性。

    java web 开发乱码汇总

    当使用Ajax发送请求时,JavaScript默认使用ISO-8859-1编码,因此需要对包含中文的参数进行编码。一种常见做法是在发送请求前使用`encodeURI()`或`encodeURIComponent()`方法对参数进行编码,例如`var url = ...

    GBK与UTF8编码批量转码工具

    "GBK与UTF8编码批量转码工具"就是为了解决不同编码格式之间转换问题而设计的一款实用软件。这款工具能够帮助用户快速有效地将大量文件从GBK编码转换为UTF8编码,或者反之,尤其对于像Discuz!这样的论坛模板调整来说...

    javascript中 unicode和ascii转码

    在JavaScript编程语言中,字符编码是处理字符串时不可或缺的一部分。主要涉及到两种常见的字符编码:ASCII和Unicode。本文将深入探讨这两个概念以及它们在JavaScript中的应用。 **ASCII编码**(American Standard ...

    JavaScript BASE64算法实现(完美解决中文乱码)

    描述部分强调了在JavaScript中进行Base64编码时,解决中文字符乱码问题的重要性。在编码过程中,首先使用`escape()`函数对中文字符进行编码处理。`escape()`函数能够把中文字符转换为URL编码的字符串,以此解决直接...

Global site tag (gtag.js) - Google Analytics