小女子请教各位高手:为什么同样的代码在另外的机器上出现乱码?

angelfish25 2006-11-02 10:28:38
小女子请教各位高手两个困扰了我很久的问题:
我在以下环境下进行的开发;
tomcat5.0、JDK1.5、SQLServer2000、服务器操作系统是window 2000 Advanced Server
运行时正常。然后我把它移植到另外一台一模一样的机器上,操作系统和应用服务器的版本也都一样,可是却在页面的传值过程中出现了乱码。
在之前的机器上页面之间传值时,我使用了request.setCharacterEncoding("UTF-8");接收表单传过来的值;
而在后来的机器上必须要加上
new String ((request.getParameter("function_name").getBytes("iso-8859-1")),"UTF-8")来进行编码的转换,否则出现的是乱码。
这是为什么呀?觉得很奇怪~!

还有一个问题:为什么有些系统下运行好用的java script在有些系统下不好用呢?
...全文
429 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
angelfish25 2007-03-13
  • 打赏
  • 举报
回复
谢谢各位的帮助!!
xiangbo520 2006-11-04
  • 打赏
  • 举报
回复
在TOMCAT中request.setCharacterEncoding("UTF-8");只能对POST方式传输的数据有效,对GET无能为力,需要在SERVERL.XML中添加URIEncoding="UTF-8".
Tomcat:修改Tomcat安装目录下conf/server.xml文件,加上URIEncoding="UTF-8"/
<Connector port="8080" .... URIEncoding="UTF-8"/>
chinabh 2006-11-03
  • 打赏
  • 举报
回复
每个页面加不是麻烦死啊,当然用过滤器方便了,一劳永逸呀
ker79 2006-11-03
  • 打赏
  • 举报
回复
过滤器
xiaoyetao08 2006-11-03
  • 打赏
  • 举报
回复
iso-8859-1

过滤也行的
......
zhaochunhui 2006-11-03
  • 打赏
  • 举报
回复
url传参的编码问题
在 server.xml 的 <Connector 中加入 URIEncoding="UTF-8" jsp页面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
如果是中文字符的话 最好 传参数的时候 转换下编码 取到的时候在 把编转化回来
用 java.net.URLEncoder.encode()编码,java.net.URLDecoder.decode()解码
daichenghua 2006-11-02
  • 打赏
  • 举报
回复
楼上有理
MySoftZone 2006-11-02
  • 打赏
  • 举报
回复
我晕 这可能跟你IE环境有关系,你怎么设置的编码格式,看看你的IE编辑栏中格式是不是一样的,跟操作系统没直接关系。。。呵呵你看看吧
hohowu 2006-11-02
  • 打赏
  • 举报
回复
过滤器加进去就ok
angelfish25 2006-11-02
  • 打赏
  • 举报
回复
大家来帮帮忙呀~!谢谢啦~!
ss19830716 2006-11-02
  • 打赏
  • 举报
回复
弄个图片,一点就进入连接
asdex1999 2006-11-02
  • 打赏
  • 举报
回复
http://www.quandi.cn/WebForm1.aspx?quandi_id=asdex1999
angelfish25 2006-11-02
  • 打赏
  • 举报
回复
真是郁闷啊~!想不明白呀~!
angelfish25 2006-11-02
  • 打赏
  • 举报
回复
TO 小飞飞:
我在每一个需要接受参数的JSP页面上都写了request.setCharacterEncoding("UTF-8");
这样和过滤器的效果是不是一样啊?
angelfish25 2006-11-02
  • 打赏
  • 举报
回复
to MySoftZone():
我使用的是同一台机器上的IE浏览器,访问第一台服务器上的程序没有出现任何问题,而把代码移植到其他的服务器上,这时,就出现了乱码。
lzmhehe 2006-11-02
  • 打赏
  • 举报
回复
十分正常的一件事情
转码是 j2ee 十分正常的事情
你可以写个过滤器

javascript 和浏览器有关系
不同的浏览器对 javascript 支持不同

下面是个转码的过滤器

package netstore.framework.util;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.UnavailableException;

/**
* Example filter that sets the character encoding to be used in parsing the
* incoming request
*/
public class SetCharacterEncodingFilter implements Filter {

/**
* Take this filter out of service.
*/
public void destroy() {
}
/**
* Select and set (if specified) the character encoding to be used to
* interpret request parameters for this request.
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)throws IOException, ServletException {

request.setCharacterEncoding("GB2312");

// 传递控制到下一个过滤器
chain.doFilter(request, response);
}

public void init(FilterConfig filterConfig) throws ServletException {
}
}



web.xml 配置

<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>netstore.framework.util.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
bign_hdl 2006-11-02
  • 打赏
  • 举报
回复
直接:response.setCharacterEncoding(template.getEncoding());
response.setContentType("text/html;charset=utf-8");

获得的编码不一定是iso-8859-1
  大家好,我是录制课程的老师,课程已经上线课堂,欢迎大家试听,感谢同学们的支持。在你们的学习中我会全力助你提升MySQL技能,助你冲击更高年薪。支持课程答疑,支持一对一答疑服务,由课程老师直接回答。    MySQL凭借着它不错的性能、不错的稳定性、数据的安全性常年稳居行业老二宝座。    越来越多的DBA和后端同学在工作中少不了和MySQL打交道,也经常会产生这样的疑问:    为什么我写的sql语句性能这么低?  为什么明明我建了索引却没有用到索引?  为什么突然我的数据就成了码?  为什么我备份的文件在主库恢复,数据无法同步到从库?  为什么我的数据库数据不多,却占了很多的空间?  生产中我应该选择哪种隔离级别?  生产中都在使用innodb存储引擎,我却对它一无所知?  我应该怎么规划缓冲池才能让数据库性能更高?  为什么我做表数据迁移这么慢?  为什么我写的sql会造成那么多的锁冲突、死锁?  为什么我不能将数据恢复到任意时间点?  为什么我不能解决公司主从复制架构中的故障?  吧啦吧啦一大堆问题……    在面试中MySQL的一些知识更成为躲不过的问题,比如b+tree索引、MVCC、隔离级别的实现、锁的使用,主从复制,MySQL性能优化、事务两阶段提交等等都成为了面试考题重灾区。    我的课程就是从实际工作来,从问题出发,带着问题来学习MySQL,想解决问题就要学习新的知识,大家跟紧老司机,MySQL的面纱就会慢慢摘下。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧