传输中文乱码js解决方法
encodeURI要编码两次
var a="我的";
//编译两次
//window.location.href = "http://127.0.0.1:8080/kabao-api/xtetest/c.do?title="+encodeURI(encodeURI(a));
window.location.href=encodeURI(encodeURI("http://127.0.0.1:8080/kabao-api/xtetest/c.do?title="+a));
后台接收编译两次之后的代码操作
String title = request.getParameter("title");
System.out.println(title); //%E6%88%91%E7%9A%84
String encode = URLDecoder.decode(title, "UTF-8");
System.out.println(encode); //我的
编译一次
var a="我的";
//编译一次
//window.location.href = "http://127.0.0.1:8080/kabao-api/xtetest/c.do?title="+encodeURI(a);
window.location.href=encodeURI("http://127.0.0.1:8080/kabao-api/xtetest/c.do?title="+a);
后台接收编译一次之后的代码操作
String title = request.getParameter("title");
System.out.println(new String(title.getBytes("ISO-8859-1"), "UTF-8"));
一般情况下,tomcat容器中request.getParameter(paramName);容器会自动按照容器默认的编码进行解码,默认是iso-8859-1,因为encodeURI使用的是UTF-8编码规则来编的,如果将tomcat的配置文件server.xml中的
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8" />
URIEncoding修改成utf-8那样在后台就不用解码了,因为容器会自动按照utf-8进行解码。
如果不能修改容器的编码就在接收的参数的时候先使用iso-8859-1接收然后在使用utf-8获取比如:title.getBytes("ISO-8859-1"), "UTF-8")
前台提交的时候进行二次编码,在第一次进行编码的时候进行utf-8进行了编码因为utf-8是最灵活的utf编码形式,即兼容iso -8859-1又可以用来表示所有语言的字符,而且ISO-8859-1编码范围使用了单字节内的所有空间,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。所以第一次编码就变成的单字节字符,第二次是为了与解码相对相应 即: 中文字符 ---->utf-8 -->utf-8(iso-8859-1) |||iso-8859-1容器解码-->utf-8用于解码-->中文字符 这样就相对应了,就不会产生编译乱码
也可以使用filter或者设置pageEncoding、contentType来设置定义编码
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
java 编码解码
java.net.URLEncoder.encode(String s,"编码");
java.net.URLDecoder.decode(String s,"编码");
js编码解码
encodeURI(String3.value);编码
decodeURI(String1.value);解码
escape(String);编码
unescape(string);解码
encodeURIComponent(URIstring);编码
decodeURIComponent(URIstring);解码
提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
传输中文乱码js解决方法的更多相关文章
- php 使用phpmailer 发送邮件(附带中文乱码的解决方法)
下载phpmailer ,在程序里包含class.phpmailer.php 类 ,这里有中文乱码的解决方法 实例代码如下 <html> <head> <title&g ...
- xShell终端中文乱码完全解决方法
xShell终端中文乱码完全解决方法 xShell(xShell5)以及其他终端中文乱码的原因无非有三种:(1)Linux系统的编码问题:(2)xShell终端的编码问题: (3)两端的语言编码不一致 ...
- Mysql命令行中文乱码的解决方法
环境:Windows 8 64位,Mysql 5.0.96 for Win64 (x86) 数据库本身安装时默认已经是使用utf8编码的了,但在命令行中执行查询时,查询到的中文依然乱码,解决方法如下 ...
- 30. CentOS终端命令行显示中文乱码的解决方法
安装CentOS的时候选择了中文,结果在终端不能显示中文,都是乱码,解决方法:修改/etc/sysconfig/i18n,内容为 代码如下: LANG="zh_CN.GB18030&qu ...
- windows下SVN日志反馈中文乱码的解决方法
转自:https://shiyousan.com/post/635889908703806636 TortoiseSVN中文乱码的问题困扰了我好久,特别是每次使用“以标准差异文件显示修改”时,打开的文 ...
- 【IntelliJ IDEA】从资源文件读取出来就中文乱码的解决方法
在application.properties资源文件中设置两个自定义的属性以及属性值: com.sxd.name = "德玛西亚" com.sxd.want = "王者 ...
- ueditor 1.4.3 gbk asp 上传中文乱码 终极解决方法 ie6 ie8 也适用
[摘要:百度编纂器1.43 gbk asp 题目 1.firefox3.0下 单图上传 面没有了 面多图上传 中央的蓝色按钮(即 面击挑选图片)没有表现(附件上传出那个题目) 没有晓得我的水狐吃翔了 ...
- Sublime Text 3 中文乱码的解决方法
Sublime Text 3 中文乱码表现如下图: 解决方法很简单,三步搞定: 步骤一: 下载ConvertToUTF8,下载地址:http://pan.baidu.com/s/1gd5SWmB 步骤 ...
- mysql命令行以及mysql workbence查询结果中文乱码的解决方法
最近正在学习mysql,安装环境是windows server 2003 32位操作系统+mysql 5.1.47同时也安装了mysql命令行以及mysql workbench这里是test数据库cr ...
随机推荐
- Android开源代码解读のOnScrollListener实现ListView滚屏时不加载数据
使用ListView过程中,如果滚动加载数据的操作比较费时,很容易在滚屏时出现屏幕卡住的现象,一个解决的办法就是不要在滚动时加载数据,而是等到滚动停止后再进行数据的加载.这同样要实现OnScrollL ...
- 使用Gradle构建Android应用内测版本
在开发应用的过程中,有时候需要比较当前线上版本和正在开发中的版本差异,目前的做法只能是在两个不同的设备上面安装线上版本和开发中的版本,因为当前版本在调试过程中会覆盖旧版本.本文通过使用gradle来构 ...
- asp.net操作xml(增删查改)
asp.net操作xml 1.xml文档Products.xml <?xml version="1.0" encoding="utf-8"?> &l ...
- (转)走进JVM,浅水也能捉鱼
这不是一篇描述jvm是什么的文章,也不介绍jvm跨平台的特性,也不是讲述jvm安全特性的文章,更不是讲解jvm指令操作,数据运算的文章,本文重点讲述类型的生命周期. 类型的生命周期涉及到:类的装载.j ...
- CSS结构伪类E:first-child/last-child/only-child/empty
E:first-child解释:E的父元素的第一个子元素正好是E,给这个E定义样式 E:last-child解释:E的父元素的最后一个子元素正好是E,给这个E定义样式 E:only-child解释:E ...
- css导航条
#nav ul { display: none; position: absolute; padding-top: 0px;} #nav li:hover ul { display: block;}
- Android与JS混编(js调用android相机)
参考android相机调用,http://blog.csdn.net/yanzi1225627/article/details/33028041/,谢谢 相机怎么调用就不做赘述了,下面是js调用 ...
- oracle学习笔记(三)oracle函数
--oracle 函数 --lower(char):将字符串转换为小写格式 --upper(char):将字符串转换为大写格式 --length(char):返回字符串的长度 --substr(cha ...
- txt 分割程序
网上有很多 分割程序 ,但是他们都没有满足实际的用户要求 ,大家当然是希望看文章小说 一章节一章节的看 并非是那些传统意义上的按照文件的大小切割 所以 我特写本文研究下 这个简单的算法该怎样设计 说白 ...
- django-filter 使用Filter来筛选你的数据
django-filter Django-filter is a generic, reusable application to alleviate writing some of the more ...