传输中文乱码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 ...
随机推荐
- (转)vivoxshot 精英版三模转五模模式切换操作方法
https://yunpan.cn/cPUBWc8vtKpID (提取码:de92) 本帖最后由 韩爱峰 于 2016-3-29 23:00 编辑 碰到不少机友在使用过程中操作不成功,现将我的方法跟大 ...
- FpSpread添加标注
先看效果 实现: FarPoint.Web.Spread.StyleInfo Errorcss = new FarPoint.Web.Spread.StyleInfo(); Errorcss.Bord ...
- iOS_SN_Socket - AsyncSocket
转载文章,原地址:http://yimouleng.com/2015/02/04/Socket-AsyncSocket/ 一.前言 公司的项目用到了Socket编程,之前在学习的过程当中,用到的更多的 ...
- UILabel 的使用,属性详解
·UILable是iPhone界面最基本的控件,主要用来显示文本信息. ·常用属性和方法有: .创建 CGRect rect = CGRectMake(, , , ); UILabel *label ...
- cocos2dx 碰撞检测
//必须 要有float类型的参数 void MainScene::updateFrame(float dt) { if (spriteTest != NULL && spriteTe ...
- Couchbase 使用方法
1.数据流向 List<模型> 数据-->MsgPack 打包成byte[]-> couchbase 实例调用 Store(Enyim.Caching.Memcached.S ...
- python学习第一天 -安装配置及其输入输出
Python, 是一种面向对象.解释型计算机程序设计语言. python适合领域: 1.Web网络和各种网络服务 2.系统工具和脚本 3.作为“胶水”语言把其他语言开发的模块包装起来方便使用 pyth ...
- 函数reduce,lambda,filter
#比较时间差,判断执行有时. import time def panduan(x): if x%5==0 and x%7==0: return True else: return False star ...
- a标签href不跳转 禁止跳转
a标签href不跳转 禁止跳转 当页面中a标签不需要任何跳转时,从原理上来讲,可分如下两种方法: 标签属性href,使其指向空或不返回任何内容.如: <a href="javascri ...
- sqlserver exists和in 与exists和not in
1.exists 和 in 1.1 正常情况下exists和in的效果是一样的,如图试验 即使子查询中包含null也没有关系,依然可以正常使用 1.2 in 和 exists效率比较 先看in 由图中 ...