当前页面: 开发资料首页 → J2EE 专题 → mysql中文输入乱码问题?
mysql中文输入乱码问题?
摘要: mysql中文输入乱码问题?
从mysql中读取中文的时候是好的 ,但是输入中文的时候都是都显示???.我的设置
mysString sConnStr = "jdbc:mysql://localhost:3306/sample_db?user=root&password=browser&useUnicode=true&characterEncoding=GBK";
原先是GB2312改了还是不可以的。是不是要添加编码转换的代码啊??
是的
乱码一种是页面级的,一种是与数据库有关的.
我有个类可以转换字符集
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;
}
}
我试过用getBytes进行编码的转换,可是在程序里我用的sql语句好象就编译有问题啊。
String qusetion_ID = request.getParameter("qusetion_ID");
String answer_ID = request.getParameter("answer_ID");
String answer_con = request.getParameter("answer_con");
%>
<% 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语句就无法编译识别啊?
有的时候,添加“&useUnicode=true&characterEncoding=GBK”就会出问题,因为你的字符设置和数据库的有排斥。
那应该怎么办啊 ?我还是听人家改的
用"characterEncoding=unicode"试一下
试过了 还是不可以!可读取的时候一直是好的啊中文显示,就是输入中文的时候就变成只显示问号了。我数据库里的属性是char这个有问题不啊??
mark!
---------------------
代表城管来接分(怕了吧?)。
不给就抢,一天一次...
偶也遇到过同样的问题。
1)MySql数据库编码方式没改啊,默认好象是latin,在%MYSQL%/目录下一个叫*.ini的文件,修改里面的characterEncoding="gb2312"就可以了.然后再重新创建数据库和表.
2)或者在创建表时,Create子句后添加characterEncoding="gb2312"也是可以的.
请问楼上的具体是哪里的ini文件啊
mySQL安装目录下有一个叫my.ini
修改default-character-set=gb2312
修改了 谢谢!