是的
乱码一种是页面级的,一种是与数据库有关的.
我有个类可以转换字符集
package db;
import java.util.*;
public class isoToGbk{
public static String ToGbk(String str){
try{
if (str!= null ) {
byte[] bt1 = str.getBytes("ISO8859_1");//用ISO8859_1进行编码
str = new String(bt1,"GBK");//用GBK进行解码,构建1个新的字符串
}else str = "";
}catch(Exception e){
e.printStackTrace();
}
return str;
}
}
乱码一种是页面级的,一种是与数据库有关的.
我有个类可以转换字符集
package db;
import java.util.*;
public class isoToGbk{
public static String ToGbk(String str){
try{
if (str!= null ) {
byte[] bt1 = str.getBytes("ISO8859_1");//用ISO8859_1进行编码
str = new String(bt1,"GBK");//用GBK进行解码,构建1个新的字符串
}else str = "";
}catch(Exception e){
e.printStackTrace();
}
return str;
}
}
String qusetion_ID = request.getParameter("qusetion_ID");
String answer_ID = request.getParameter("answer_ID");
String answer_con = request.getParameter("answer_con");%>
<jsp:useBean id="mysql" scope="page" class="com.jsp.mysql" />
<% mysql.executeUpdate("Insert Into answer(qusetion_ID,answer_ID,vote_num,answer_con) VALUES (\""+qusetion_ID+"\",\""+answer_ID+"\",\""+0+"\",\""+answer_con+"\")");%>
我把answer_con用getBytes 做变换,好象sql语句就无法编译识别啊?
1)MySql数据库编码方式没改啊,默认好象是latin,在%MYSQL%\目录下一个叫*.ini的文件,修改里面的characterEncoding="gb2312"就可以了.然后再重新创建数据库和表.
2)或者在创建表时,Create子句后添加characterEncoding="gb2312"也是可以的.