java web里 GBK 与UTF-8的转码问题? 200

System.out.println(newString(newString("中文".getBytes("gbk"),"utf-8").getBytes("utf-8"... System.out.println(
new String (new String( "中文".getBytes("gbk"),"utf-8").getBytes("utf-8"),"gbk"));
这里gbk与utf8的转码结果为“锟斤拷锟斤拷”六个中文

new String( "中文".getBytes("gbk"),"utf-8") 这里的结果是4个问号'?'
解码4个字节的中文无法用utf-8解析4个字节的中文 因为是他解析中文用3个字节? 丢失了精度?
那么我该 怎么转换呢?

Tomcat 里面设置的server.xml 设置了url编码为utf8
<Connector port="8888" protocol="HTTP/1.1"
URIEncoding="UTF-8"/>
那么浏览器 里面http://localhost:8080/demo/servlert?name=中国
IE浏览器是用UTF-8编码url的(name=中国 是用gbk编码的)
而现在我的服务器也用utf-8解码url 也就是将name的值用utf8解析
这里我该怎么得到name这个正确的值呢?
请帮忙!
其实我想得到的结果也很简单 只要把
new String( "中文".getBytes("gbk"),"utf-8")

还原成'中文'这两个字就可以了
展开
 我来答
lydawen
2008-12-11 · TA获得超过3181个赞
知道大有可为答主
回答量:2678
采纳率:50%
帮助的人:1512万
展开全部
new String("中文字符串".getBytes("iso-8859-1"),"utf-8");

这个应该可以解决你的问题。
另外,编码应该页面,文件本身全部统一为一种编码。
捷睿小时
2008-12-12 · TA获得超过403个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:206万
展开全部
1,首先加个过滤器,就不用这么麻烦了。

2,name的那个,tomcat修改以后,应该在页面里用Encode编码汉字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pxhoonet
2008-12-11 · TA获得超过121个赞
知道小有建树答主
回答量:119
采纳率:0%
帮助的人:0
展开全部
System.out.println( new String("中文".getBytes(),"GBK"));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cn_zxy
2008-12-12 · 超过54用户采纳过TA的回答
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:171万
展开全部
做一个项目过滤就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式