jsp显示数据库中文乱码? new String(str.getBytes("iso-8859-1"),"GB2312");解决通过URL?name=大洒洒洒洒的问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在你获取“存储到数据库的值”的前面加上request.setCharacterEncoding("GB2312");在代码最后面加上 response.setCharacterEncoding("GB2312"); 就可以了,我也遇到过这个问题。 request.setCharacterEncoding("GB2312");读出数据不用转换,加上上面的应该就可以。 request.setCharacterEncoding("GB2312"); 页面编码是"gb2312"我加上request.setCharacterEncoding("GB2312");也不行呀 jsp顶部是<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%> 我的jsp页面如下,麻烦大家帮我看看<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%><html> <head> <title>My JSP '1.jsp' starting page</title> </head> <body> <% Connection con=null;Statement stmt=null;ResultSet rs=null;String sql="";String xy="理学院";String bynf="2006";//request.setCharacterEncoding("gb2312"); sql="select taizhang2.姓名,taizhang2.身份证 from biyes,taizhang2 where biyes.身份证号=taizhang2.身份证 and 院系所 like '%"+xy+"%'and taizhang2.毕业年份='"+bynf+"'"; try{ Class.forName("com.mysql.jdbc.Driver").newInstance();//加载驱动程序 String url="jdbc:mysql://localhost:3306/dhgl"; con=DriverManager.getConnection(url,"root","root"); //建立连接 System.out.println("数据库连接成功,准备插入数据......"); stmt=con.createStatement(); rs=stmt.executeQuery(sql); ResultSetMetaData statName= rs.getMetaData(); for(int j=1;j<=statName.getColumnCount();j++) { String tmpstr=statName.getColumnName(j); tmpstr=new String(tmpstr.getBytes("ISO-8859-1"),"GB2312"); out.println(tmpstr+"<br/>"); //out.println(statName.getColumnName(j)+"<br/>"); } } catch(ClassNotFoundException ce){ System.out.println(ce); }catch(SQLException se){ System.out.println(se); } catch(Exception e){ System.out.println(e); } %> </body></html> 加上response.setCharacterEncoding("GB2312"); 看看怎样,可以测试下页面传递是否能传中文! 加个 <%request.setCharacterEncoding("GB2312");%>应该就可以。 mysql5.0是不可以的.建库时.建表时都要加默认。。GBK编码 我的mysql是5.0安装数据库时默认编码是gb2312,数据表中的中文都可以正常显示,数据库应该没问题。 我在建库建表时没加默认,可都可以读出表中的中文字段,偏偏只有表头读出乱码?是不是建库时.建表时都要加默认。。GBK编码表头才能正常显示??可可以读出表中的中文字段?奇怪了! 做广告,看了疗效再说信不信:http://blog.csdn.net/liltos/archive/2007/04/09/1557878.aspx昨天刚写的编码问题。。 <%@ page language="java" import="java.sql.*" contentType="text/html;charset=gb2312" pageEncoding="gb2312"%>文件编码为ANSI 非UTF8 <%@ page language="java" import="java.sql.*" contentType="text/html;charset=gb2312" pageEncoding="gb2312"%>文件编码为ANSI 非UTF8这样做,还是乱码? 首先mysql数据库的编码 设置为GB2312然后数据库连接这里Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/dbName?useUnicode=true&characterEncoding=GB2312","root",""); 如过是通过GET方法传递的参数如:url ../test.jsp?v=汉字的话 应该把汉字转化成 UTF-8的编码在传过去[URLEncoder.encode("汉字","GB2312")]取的时候在转化回来如果是tomcat的话 在server.xml 的<Connector port="8080" 中加入URIEncoding="GB2312"最好在写个 过滤器 我直接在jsp中读取数据库中的字段的,所以不用考虑get的问题mysql数据库的编码 设置为GB2312tomcat在server.xml 的<Connector port="8080" 中加入URIEncoding="GB2312"可还没有成功,我再写个过滤器吧。我昨天也写了过滤器,在web.xml中也配置了,可还没成功。是不是在程序中要应用? 那是一个漆黑的夜晚…. 此乱码问题已解决。历时40多天,寻求解决方案的足迹已遍布大江南北,e….总的来说,没有翻不过去的山,只要注意自己脚下的路就好了。百度,Google上的解决方案也满天飞了,按照上面的配置修改了以后,还是不行。今天,终于找到原因所在:不是解决方案不行,是我疏忽了其中没有提到一个文件。唉,还是自己的知识不足阿,导致疏忽…。是一个自定义标签,显示数据用的。我是直接Copy过来的,没详细看内容….其中用了编码转换。我是在做第四遍的时候发现的e…把它删了,就OK了….环境: WindowsXP中文Eclipse3.2.1+Myeclipse5.1.0GATomcat5.5JDK1.5.0Hibernate3.1Mysql5.0+ mysql-connector-java-5.0.4-bin.jar方案:1.集成开发环境Eclipse中设置文本文件存储编码为UTF-8。//我想是因为….如果所做工程项目最终要在别的版本操作系统的服务器上跑,这里需要设置(未经证实)2.数据库mysql,默认编码使用utf8;并且创建数据库时在语句后面追加DEFAULT CHARSET=utf8;set names utf8;//如果数据库默认编码是utf8,那这个也不是必需的吧(未经证实)3.跟数据库连接的URL:Hibernate URL:jdbc:mysql://127.0.0.1:3306/addressbook?useUnicode=true&characterEncoding=utf8//如果数据库默认编码是utf8,那这个也不是必需的吧(未经证实)4.使用过滤器,过滤器文件代码见后面附1。<filter> <filter-name>Set Character Encoding</filter-name> <filter-class>org.biti.filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>//过滤的是post还是get还没弄明白,据说只过滤器中一个,另一个见5。5.修改Tomcat配置文件server.xml中Connector部分<Connector port="80" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true" />加入URIEncoding="UTF-8"一项。//我现在这个没乱码的就没有设置…. 以上是UTF-8解决乱码的方法,仅供参考 request.setCharacterEncoding("GB2312"); <%@ page language="java" contentType="text/html;charset=gb2312" pageEncoding="gb2312" %><% request.setCharacterEncoding("gb2312"); Web上临时保存草稿功能,数据库这块一般怎么实现的? 用什么 jsp 编辑器 比较好呢 初学, 请教二个问题。 路过的帮帮忙。 帮我看看这是什么错??? 哪个搜索资料最准 求助,MVC三层架构中jsp无法读取DTO属性问题... socket流问题 用HttpURLConnection和servlet连接,上传文件到服务器端,怎样实现,谢了 JSP倒底是什么呢?它和ASP、PHP有什么区别? jsp连接数据库时出现的问题,请帮忙 请问用ORALCE建一个库,在网页上的连接直接访问这个库,怎么构建?100分 Myeclipse Database explorer查询视图问题
在代码最后面加上 response.setCharacterEncoding("GB2312"); 就可以了,我也遇到过这个问题。
读出数据不用转换,加上上面的应该就可以。
我加上request.setCharacterEncoding("GB2312");
也不行呀
<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%><html>
<head>
<title>My JSP '1.jsp' starting page</title>
</head>
<body>
<%
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
String sql="";
String xy="理学院";
String bynf="2006";
//request.setCharacterEncoding("gb2312");
sql="select taizhang2.姓名,taizhang2.身份证 from biyes,taizhang2 where biyes.身份证号=taizhang2.身份证 and 院系所 like '%"+xy+"%'and taizhang2.毕业年份='"+bynf+"'";
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();//加载驱动程序
String url="jdbc:mysql://localhost:3306/dhgl";
con=DriverManager.getConnection(url,"root","root"); //建立连接
System.out.println("数据库连接成功,准备插入数据......");
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
ResultSetMetaData statName= rs.getMetaData();
for(int j=1;j<=statName.getColumnCount();j++)
{
String tmpstr=statName.getColumnName(j);
tmpstr=new String(tmpstr.getBytes("ISO-8859-1"),"GB2312");
out.println(tmpstr+"<br/>");
//out.println(statName.getColumnName(j)+"<br/>");
}
}
catch(ClassNotFoundException ce)
{ System.out.println(ce); }
catch(SQLException se)
{ System.out.println(se); }
catch(Exception e)
{ System.out.println(e); } %>
</body>
</html>
应该就可以。
建库时.建表时都要加默认。。GBK编码
安装数据库时默认编码是gb2312,数据表中的中文都可以正常显示,数据库应该没问题。
是不是建库时.建表时都要加默认。。GBK编码
表头才能正常显示??可可以读出表中的中文字段?
奇怪了!
昨天刚写的编码问题。。
文件编码为ANSI 非UTF8
文件编码为ANSI 非UTF8
这样做,还是乱码?
然后数据库连接这里
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/dbName?useUnicode=true&characterEncoding=GB2312","root",""); 如过是通过GET方法传递的参数如:url ../test.jsp?v=汉字
的话 应该把汉字转化成 UTF-8的编码在传过去[URLEncoder.encode("汉字","GB2312")]
取的时候在转化回来
如果是tomcat的话 在server.xml 的
<Connector
port="8080"
中加入
URIEncoding="GB2312"
最好在写个 过滤器
mysql数据库的编码 设置为GB2312
tomcat在server.xml 的
<Connector
port="8080"
中加入
URIEncoding="GB2312"可还没有成功,我再写个过滤器吧。
我昨天也写了过滤器,在web.xml中也配置了,可还没成功。
是不是在程序中要应用?
此乱码问题已解决。历时40多天,寻求解决方案的足迹已遍布大江南北,e….总的来说,没有翻不过去的山,只要注意自己脚下的路就好了。百度,Google上的解决方案也满天飞了,按照上面的配置修改了以后,还是不行。今天,终于找到原因所在:不是解决方案不行,是我疏忽了其中没有提到一个文件。唉,还是自己的知识不足阿,导致疏忽…。是一个自定义标签,显示数据用的。我是直接Copy过来的,没详细看内容….其中用了编码转换。我是在做第四遍的时候发现的e…把它删了,就OK了….环境:
WindowsXP中文
Eclipse3.2.1+Myeclipse5.1.0GA
Tomcat5.5
JDK1.5.0
Hibernate3.1
Mysql5.0+ mysql-connector-java-5.0.4-bin.jar方案:
1.集成开发环境Eclipse中设置文本文件存储编码为UTF-8。
//我想是因为….如果所做工程项目最终要在别的版本操作系统的服务器上跑,这里需要设置(未经证实)
2.数据库mysql,默认编码使用utf8;
并且创建数据库时在语句后面追加DEFAULT CHARSET=utf8;set names utf8;
//如果数据库默认编码是utf8,那这个也不是必需的吧(未经证实)
3.跟数据库连接的URL:Hibernate URL:
jdbc:mysql://127.0.0.1:3306/addressbook?useUnicode=true&characterEncoding=utf8
//如果数据库默认编码是utf8,那这个也不是必需的吧(未经证实)
4.使用过滤器,过滤器文件代码见后面附1。
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.biti.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
//过滤的是post还是get还没弄明白,据说只过滤器中一个,另一个见5。
5.修改Tomcat配置文件server.xml中Connector部分
<Connector port="80"
maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
加入URIEncoding="UTF-8"一项。
//我现在这个没乱码的就没有设置….
<% request.setCharacterEncoding("gb2312");