当前页面: 开发资料首页 → JSP 专题 → 最近发现jsp中文编码学得有点乱,希望各位能指点一下
最近发现jsp中文编码学得有点乱,希望各位能指点一下
摘要: 最近发现jsp中文编码学得有点乱,希望各位能指点一下
<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<head>
无标题文档</head>
<body>
中文中文
</body>
按道理说UTF8是支持中文的,为什么当我打开这个网页全都是乱码????
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<head>
无标题文档</head>
<body>
<form name="form1" method="post" action="">
<input type="text" name="ok">
<input type="submit" name="Submit" value="提交">
</form>
<%
String str = request.getParameter("ok");
if(str == null) {
str = "";
}
String str1 = new String(str.getBytes("GBK"));
%>
<%=str1%>
</body>
我的系统是windows2000支持GBK
这里,我用GBK,和UTF-8都不行只能用ISO-8859-1,为什么阿?
还有String str1 = new String(str.getBytes(),"ISO-8859");
用这个构造器,竟然不起作用?
参考
http://bbs.gzit.org/viewthread.php?tid=184
这个试试
<%@page pageEncoding="GBK" contentType="text/html; charset=GBK" %>
<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<%@ page contentTpe="text/html; charset=gb2312" language="java" %>
这两个编码都不一样
其实个人认为写一个中文过滤器就好了,不用每个页面都去改
<%@page pageEncoding="GBK" contentType="text/html; charset=GBK" %>这个不行,刚试了
刚忘了说我是tomcat5的
String str1 = new String(str.getBytes(),"ISO-8859");
这个构造器,用不成这是怎么回事?
再试试这个<%request.setCharacterEncoding("GBK"); %>
还是不行
到底是哪里乱码??页面还是连控制台,数据库都是乱码
编码方式指定一下,一般的话用UTF-8(国际化),还有就是设置一下你的应用服务器连接池的characterEncoding和8080端口的URIEncoding,最好是自己再加一个Filter
我试过charset=GBK
然后再加上String str1 = new String(str.getBytes(),"GBK");
str1的显示就没有问题了,如果写入到文件则要
FileOutputStream os.write(lsSQL.getBytes("GBK"));
我的tomcat端口URIEncoding还是UTF8,但无影响。
【上海腾舟卖场】为回报新老客户,笔记本配件限量大特卖,欢迎来电咨询:021-34240201
★ IT市场鱼龙混杂,产品质量层次不齐, 网络购物更要注意 , 腾舟大卖场 在易趣已经经营了7年,是老字号的视信誉为生命的大型网络超市,在 徐家汇 中心商圈,在全国几大城市,全球数个国家都有办事处,绝不会出现要保修的时候人走楼空的情况 请相信腾舟的信誉,三十余名高素质的腾舟员工将竭诚为您服务 。
★我们出售的东东每个都是 全新产品!!!
笔记本配件:笔记本 内存. 硬盘,光驱,电源,电池,键盘,笔记本包。
商品链接地址:
http://stores.ebay.com.cn/shanghaiship
上海客户可直接到徐家汇太平洋一期6楼F-1看货。电话:021-34240201 34240385
联系人:徐小姐 QQ:376882018
★MSN: mailto:xiao8yao4_xu@hotmail.com
SONY、IBM、DELL、HP上海笔记本潮流推广中。。。。。。。。
晕,为什么我不行?????
到底是哪里乱码??页面还是连控制台,数据库都是乱码
页面,
我只是想试一下编码,没想到出了这么大乱子,我的只能ISO-8859-1别的都是乱码
不知道是不是和tomcat的版本有关
eeeee,各位谢了,我今天查到资料了,然后总结了一下
由于jsp/servlet默认输出到客户端是ISO-8859-1
String str1 = new String(str.getBytes(),"ISO-8859");
而这个方法是先让str(ISO-8859-1)以GBK编码(system默认)然后又解码成iso-8859-1
所以有乱码,
page contentType="text/html; charset=gb2312
而这个试网页输出,和str的处理无关,所以不管改成什么jsp/servlet默认输出str依旧是iso-8859-1编码
不只我的解释是否正确,
不管对错,好了先给分了