论坛首页 Java企业应用论坛

令人恼火的UTF-8中文问题

浏览 12179 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2006-10-27  
好像有个URLEncode方法吧,
0 请登录后投票
   发表时间:2006-10-27  
这个问题我也遇到过,也使用了haha1903的办法解决。不过也存在一些问题,使用了一些笨方法解决了,期待大家更好的方法。

我的处理办法是:
URL传递中文UTF-8编码问题
0 请登录后投票
   发表时间:2006-10-27  
直接一个filter?怎么弄?
0 请登录后投票
   发表时间:2006-10-27  
hi_liuyang 写道
好像有个URLEncode方法吧,

这个是正解。
JavaScript和Java里都有。
0 请登录后投票
   发表时间:2006-10-27  
这个我记得是Tomcat的bug, 对URL它直接用系统的字符集进行解码.
好像新版的IE默认都是通过UTF-8发送URL的, URLEncode并不能直接解决这个问题,因为它只处理字节的编码,而从16位的Unicode码到字节数组的转换过程才是字符集起作用的地方.

就我的经验来看这个问题只有一个比较正规的解决方法, 就是设置Tomcat的启动java命令行, 加上 -Dfile.encoding=UTF-8 这样一个参数, 可以设到 CATALINA_OPTS 变量上去.

new String(url.getBytes("ISO_8859_1")); 类似的解决方案不仅白白消耗CPU的电能增加地球温室效应, 也比较容易被变化的客户端编码击败.
0 请登录后投票
   发表时间:2006-10-27  
tomcat的bug
你可以在一个context建几个中文的文件夹,显示正常,但是点击进入就是报错
resin就没这个问题,直接扔一个utf-8编码过的url给它是正常的
0 请登录后投票
   发表时间:2006-10-28  
没搞错的话
http://localhost:8080/csj/ch04/testServlet?name=java.net.URLEncoding("牛人");
0 请登录后投票
   发表时间:2006-10-28  
觉得通过URL传过去的参数是GBK来的,而LZ则在后台把它转换成UTF-8肯定会乱码了。
你看看,baidu, google等搜索引擎都是通过%EA%来做的
0 请登录后投票
   发表时间:2006-10-30  
我也碰到这种问题.
用URLEncoding
0 请登录后投票
   发表时间:2006-10-30  
页面加上
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=utf-8" %>

Servlet中不用编码了,默认用服务器编码
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics