我用的是Tomcat4.1和mysql3.23.53。
解决方案 »
- GET乱码以及POST乱码的解决方法
- 问一个JVM最大内存设置的问题。在线等待!!!
- 急救!!!!!!!!!多谢大家了!!!!!!!!!!!!!!!!!在线等
- JAVA,求两个集合的差集
- 在jsp中输入中文,转换到java文件就出现乱码,这是为什么?和tomcat有没有关系,该怎么设置字符集?
- 解析XML文件时出错,提示字符转换错误:“Malformed UTF-8 char -- is an XML encoding declaration missing?”(行号可能太小)
- tomcat连接池如何写oracle的blob??
- 100分求用java做的精典示例程序,E_MAIL:[email protected],分不够再加?
- 用jb9开发ejb的问题——————新建一个ejb module 结果报错:could not find main class
- java递归写法、江湖告急!各位大侠会的请进!!
- 谁有Javamail的组件,发一个给我,sun下载好慢,半天还没下完
- bs结构中怎样实时知道用户退出?(二次提问,请各位大虾帮帮忙)
classname=new String(classname.getBytes("ISO-8859-1"),"GB2312");
//试试。
也可以request.setCharacterEncoding("gb2312");//或者gbk
其他的乱码就需要转码了,就是hq1305018(跃强)的方法,或者把gb2312换成GBK,它支持更多的中文字符。
如果不是,需要写个转换函数:
public static String convertCNForDisplay(String s) {
if (s == null || s.length() == 0) {
return null;
}
byte[] buffer = new byte[s.length()];
for (int i = 0; i < s.length(); i++) {
buffer[i] = (byte) s.charAt(i);
}
return new String(buffer);
}
在页面上加上这句:
<%@ page pageEncoding="GB2312"%>
而要用getBytes,得到byte[],然后用String的String(byte[], String charset)构造一个String。比如:
byte[] data = rs.getBytes(1);
String s = new String(data, "GBK");
我的数据库连接中有一行是这样的:
"jdbc:mysql://localhost/school/user=root&password=&useUnicode=true&characterEncoding=GB2312";(我是按网上教程照抄的。)
---------------------
在jsp文件的第一行,如果不设置charset,就是像这样
<%@ page contentType="text/html; charset=" language="java" import="java.sql.*" errorPage="" %>,那么网页中的中文能正常显示,数据库的中文不能正常显示。如果设置了charset,如下面这样
<%@ page contentType="text/html; charset=GB2312" language="java" import="java.sql.*" errorPage="" %>,那么情况与上面正好相反,网页中的中文能不正常显示,而数据库的中文能正常显示。我总是不能让二者协调工作,都显示出中文。
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url,username,password);
String classname=resultSet.getString("name");这样就可以了啊,首先页面上
<%@page contentType="text/html;charset=gb2312"%>
"jdbc:mysql://localhost/school/user=root&password=&useUnicode=true"
在页面中设置charset为gb2312或GBK
建议楼主再看看浏览器的设置
浏览器的查看-编码
看看编码方式是不是简体中文
我以前也是这个样子的,不过现在好了。
"jdbc:mysql://localhost/school/user=root&password=&useUnicode=true"
在页面中设置charset为gb2312或GBK
public static String convertCNForDisplay(String s) {
if (s == null || s.length() == 0) {
return null;
}
byte[] buffer = new byte[s.length()];
for (int i = 0; i < s.length(); i++) {
buffer[i] = (byte) s.charAt(i);
}
return new String(buffer);
}
最好是用第一种的方法!!
真是的!!