转自:http://www.blogjava.net/auditionlsl/archive/2009/05/26/278011.html
在网上搜了很多资料都没有搞定
,
一般都有以下几种说法
:
方法
1:
在后台中先获得字符串的
iso-8859-1
编码形式数组
,
再使用此数组实例一个UTF-8编码
形式
String
类型字符串.
页面提交的
url
为
:
leavesp?work=
部门主管审批
后台处理
:
String inStr=request.getParameter("work ");
String outStr = new String(inStr.getBytes("iso-8859-1"),"UTF-8");
方法
2:
在页面传递过来时先通过
JavaScript
将
URL
编码
,
再到后台进行解码
:
页面部分
:
<script type="text/javascript">
function dogetMethod(url)
{
//url
编码前
: leavesp?work=
部门主管审批
url=encodeURI(url);
//url
编码后
:
leavesp?work=%E9%83%A8%E9%97%A8%E4%B8%BB%E7%AE%A1%E5%AE%A1%E6%89%B9
window.open(uri,’’,’’);
}
</script>
后台部分
:(
解码
)
String inStr= request.getParameter("work ");
String outStr=java.net.URLDecoder.decode(inStr);
尝试过两种方法后好像都不行
,
在后台获取到的字符还是会乱码
.
试完之后真想哭
.*o*
使用第一种方法后发现
:
在请求
(request)
中获得的字符串是这样的
:
²¿
ÃÅÖ
÷¹
ÜÉ
ó
Å
ú
使用
new String(inStr.getBytes("iso-8859-1"),"UTF-8");
处理后字符成了
: ����������
没法
,
只能再试第二种方法了
,
使用后发现
:
在页面中使用
encodeURI(url)
后
,
字符串是这样的
:
%E9%83%A8%E9%97%A8%E4%B8%BB%E7%AE%A1%E5%AE%A1%E6%89%B9
好像有希望了
!!!!
应该只要在后台再来
decoder
一下就行了吧
,
偶是这样想的
,
也是这样做的
:
在后台中
:
String inStr= request.getParameter("work ");
outStr=java.net.URLDecoder.decode(inStr);
在请求中获得的字符串是这样的
:
é
¨é—¨ä¸»ç®¡å®¡æ¹
decoder
处理后得出的字符串为
:
é
¨é—¨ä¸»ç®¡å®¡æ¹
这时候真想哭啊
!!%#$%@@!@$$##
革命尚未成功
,
还需努力
!!!
从第二种方法中发现
:
在请求中获得的字符串已经乱码了
,
用
decoder
处不处理值都是一个样
!!
明明我在页面传过来的值是已经
encode
过了的字符
,
而后来取出来却
….,
这是为什么呢
?
难倒是页面编码设置得有问题
?
看了一下页面编码是
: pageEncoding="UTF-8"
改了
!
改成
: pageEncoding="iso-8859-1"
试试
.
浏览页面上
,
发现页面上的中文变成了很多é
æ
之类的字符
,
不管了
,
再试下
,
还是一样的结果
.
涛声依旧
!
忽然想到应该是在获得字符串之前
,
也就是在
request. getParameter("work ");
这之前的某个地方已经将
URL
进行了
decoder,
并且将获得的字符用
Iso-8859-1
的编码方式存储过了
.
所以在
request
中会得到这些类似于é
æ
之类的字符
,
这种字符应该就是中文的
iso-8859-1
的形式
!!
有办法了
,
既然已经获得了
iso-8859-1
编码形式的中文
,
那就只要再使用第一种方法(先获得字符串的
iso-8859-1
数组,再将它实例成
UTF-8
的字符串)来进行处理不就
OK
了
!
试过之后果然
OK!!!
处理中文乱码代码实现部分:
jsp
页面:
<%@
page
language
=
"java"
pageEncoding
=
"UTF-8"
%>
<!
DOCTYPE
HTML
PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
>
<
html
>
<
head
>
<
script
type
=
"text/javascript"
>
//
开启网页对话脚本
function
openDialog(url,width,height)
{
var
property=
"status:no;center:yes;resizable:yes;scroll:yes;dialogWidth:"
+width+
"px;dialogHeight:"
+height+
"px;"
;
var
ret=window.showModalDialog(url,
'modalDialogwin'
,property);
if
(ret ==
null
|| ret ==
""
)
{return false
;
}
return true
;
}
//
查看待办工作脚本
function
showork(url)
{
//
将
url
地址进行编码
url=encodeURI(url);
//alert(url);
//
调用
openDialog
方法开启网页对话框
openDialog(url,900,500)
}
</
script
>
<
title
>
待办工作查看
</
title
>
</
head
>
<
body
>
<!--
部分代码略
-->
<
table
border
=
"1"
align
=
"center"
>
<
tr
>
<
td
>
<
a
href
=
"#"
onclick
=
"javascript:showork('leavesp?work=
部门主管审批
')
">
查看待办工作
</
a
>
</
td
>
</
tr
>
</
table
>
</
body
>
</
html
>
页面部分就一个超连接,用来开启一个网页对话框,只是开启的这个对话框中请求的不是一个物理的页面,而是请求的一个
servlet
(
leavesp
),而且
url
中带有中文参数值(
?work=
部门主管审批
)。
(看下一篇文章)
分享到:
相关推荐
教学视频--JSP中URL传递中文乱码问题的解决演示.rar
asp.net中URL参数传值中文乱码的三种解决办法
URL地址传参中文乱码处理是指在Web应用程序中,将中文参数传递给服务器时,可能出现乱码的情况。这种情况可能是由于编码问题或Tomcat服务器的配置问题引起的。 在处理URL地址传参中文乱码时,通常有三种解决方案: ...
解决奇数个中文字符url传递乱码问题,做了好久才找到的解决方案!
jsp使用URL编码传递中文参数乱码问题
在使用myeclipse过程中,我使用ajax同步请求传递参数到后台却出现中文乱码,这是我解决问题的代码,希望对您有所帮助
从A页面通过url传参到B页面时,获取URL中参数出现中文乱码问题,解析url参数的正确方法如下,感兴趣的朋友可以参考下
asp.net页面通过URL参数传值中文乱码问题解决办法
Jsp页面在URL中传递参数会出现乱码,本人想到两种方法解决,虽然不能保证100%解决,但值得学习
JAVA 中文乱码解决问题 JAVA 中文乱码问题是开发过程中常见的问题之一,解决这个问题需要了解乱码产生的原因,然后对症下药。下面我们对容易产生乱码问题的场景进行分析,并提出解决方案。 1. 以 POST 方法提交的...
本篇文章主要是对通过url方式传递中文乱码的解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
解决URL地址中的中文乱码问题的办法 引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符... 由于我们利用URL传递参数这种方式是依
本篇文章主要是对jquery.ajax的url中传递中文乱码问题的解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
ASP.NET的字符编码问题真是搞得人头疼,其中的中文很容易产生各种乱码问题,而这些乱码归根结底都是因为使用编码方式不匹配造成的。 因为常常需要通过URL字符串在不同页面间传递参数时遇到中文,必须进行编码和解码...
在页面中对URL进行编码,最好不要在URL中传递中文参数否则会出现乱码
PHP fopen 读取带中文URL地址的一点见解PHP中文URL编解码(urlencode()rawurlencode()php中解析带中文字符的url函数分享php中url传递中文字符,特殊危险字符的解决方法php下目前为目最全的CURL中文说明php url地址栏传...
如果你安装的是IIS rewrite_2.0的话,传递的参数都是UTF-8格式的,如果你网站是GBK的就会出现中文连接乱码。 解决办法: rewrite_2.0规则写法: RewriteRule ^news_list_([0-9a-zA-Z\u4e00-\u9fa5]+)\.html$ news_...
在 ASP.NET 开发中,URL 传递中文参数是一件很常见的事情,但是却常常会出现乱码的问题。解决这个问题的方法有多种,本文将介绍三种解决方案。 解决方案一:设置 web.config 文件 在 ASP.NET 项目中,我们可以通过...
编码编好的url是正确的,可传到另一个页面 就会出错,在地址栏就已经乱码了 1.设置web.config文件 代码如下: <system> ”gb2312″ responseEncoding=”gb2312″ culture=”zh-CN” fileEncoding=”gb2312″> ...