关于中文乱码的解决方法(URL方式)
假设
keyWord ='阳光';
url="play.jsp? keyWord ="+ keyWord
若按照上述的地址直接访问,则中文会变成乱码。必须使用encodeURI()进行两次编码。如下:
url="play.jsp? keyWord ="+encodeURI(encodeURI( keyWord ));
服务器通过以下方式获取值:
keyWord =URLDecoder.decode( keyWord ,"utf-8");
则中文乱码问题解决。
如果是通过servlet的二次转码还要在servlet中进行解码和再次编码
//中文解码
keyWord =URLDecoder.decode( keyWord ,"utf-8");
//中文编码
   keyWord =URLEncoder.encode(keyWord , "utf-8");
首先如果不编码,那些非英文abc等字符会被浏览器按照网页当前的字符集进行编码传到服务器去, 而服务器则只会按照服务器配置的字符集编码(有默认的好像就是ISOxxxx)进行解码,所以如果网页的字符集和服务器字符集解码一致那么就不会出乱码!
但是往往对于我们来说是不一致的。所以一般情况会出现乱码, 所以就有人想到用encodeUri来进行编码再发送到服务器,但是要注意encodeUri来编码是以utf-8来进行编码的,而服务器对于url里面的非abc等字符进行解码几乎默认都不是utf-8 
所
以如果你encodeUri一次的话,
通过request.getParam...而得来的是被服务器以另外一种(一般是ISO...)编码解码得到的.所以通过utf-8编码过后
再通过ISO解码当然获得的是乱码, 即使你通过decode(xxx, 'utf-8')获取之后的也不对,因为这个过程是 utf-8编码 ----
 iso解码 ----- utf-8解码,这个过程当然不对了哦!
而通过两次编码再通过两次解码为什么就对了呢, 她是这么一个过程 utf-8编码-utf-8编码 --- ISO解码 ----utf-8解码。
在这里要注意 因为通过第一次utf-8编码之后的都全是英文字符了,对于英文字符 utf-8编码 和ISO编码是一样的效果 
所以上面的过程就相当于 utf-8编码-ISO编码 --- ISO解码 ----utf-8解码 这样一个过程是对称的当然最后会得到正确的结果了
关于中文乱码的解决方法(URL方式)的更多相关文章
- 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 = "王者 ... 
- spring mvc中关于url中传递中文乱码的解决方法
		在传值过程中,也是乱码出现的频繁地.先不说到底是什么场景了,通常常用的方案有如下几个 配置指定的filter <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--> < ... 
- java 中文乱码的解决方法
		1. 这方法行之有效,但是谨慎用,它会作用服务器.超链接中带有的中文字符,<a class="add" href = "system/showDataAdd.act ... 
- MyEclipse和tomcat结合编写jsp对于中文乱码的解决方法
		一.Java和jsp 中文乱码原因和解决方法: Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦.原因有两方面: 第一方面:J ... 
随机推荐
- UML的基本关联
			 First, a dependency is a semantic relationship between two model elements in which a change to on ... 
- OAuth2.0授权机制说明
			授权机制说明 1 简介 优酷对第三方应用用户授权采用OAuth2.0标准 2 OAuth2.0 授权方式 优酷支持OAuth 2.0的三种授权方式,请根据平台选用不同的授权方式: 2.1 通用授权 ... 
- CSS 浏览器默认样式
			不要再说div天生就是block——这句话应该换成:浏览器默认样式天生规定了div是block——所以才导致了div是block!是默认样式规定的,不是浏览器的内核规定的. 没有设置block的元素, ... 
- 我的第一个html计算器
			html代码. <!DOCTYPE HTML> <html> <head> <style type="text/css"> body ... 
- 02Android用户界面优化之(一)Android Fragment
			一.使用Fragment 1.AndroidManifest.xml文件 <?xml version="1.0" encoding="utf-8"?> ... 
- SQL语句优化(转摘)
			(1) 选择最有效率的表名顺序(只在基于规则的seo/' target='_blank'>优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最 ... 
- 使用XmlReader读Xml
			XmlDocument和XElement在读取Xml时要将整个Xml文档放到内存中去操作,这样做操作简单,但是很费内存和IO(可能是磁盘IO或者网络IO):而在有些场景下我们必须考虑尽可能节省内存和I ... 
- 关于C语言指针几个容易混淆的概念
			前言: 大多数学习过C/C++或者正在学习的同学在对指针概念把握时,总是感觉不太明了,小弟我也不例外啊,于是翻开资料复习整理一下,并把自己的学习心得拿出来供大家分享,讨论. 基本概念掠过,主要来探讨一 ... 
- PHP编程中10个最常见的错误
			PHP是一种非常流行的开源服务器端脚本语言,你在万维网看到的大多数网站都是使用php开发的.本篇经将为大家介绍PHP开发中10个最常见的问题,希望能够对朋友有所帮助. 错误1:foreach循环后留下 ... 
- [jQuery] jQuery如何获取同一个类标签的所有的值
			碰巧在开发的时候遇到这个问题,因为jQuery总是只返回第一个类标签的值,所以无法达到我们的要求. 比如: var btn = jQuery('.btn').val(); 获取的只是第一个类标签为bt ... 
