我使用Navicat Lite8进行MYSQL数据库和表的建立,然后用JAVA进行数据的添加
当数据添加进入数据库后,英文和数字都可以显示,但是中文就会变成??
我感觉是字符集用的不对
在使用Navicat Lite8进行数据库的创建时,会有两个选项,分别是Character set和Collation
前者我试过了BIG5,gb2312,gbk,utf8,当选用utf8时,Collation的选项非常多,我就随便选了几种分别试了,但是都是不行,中文一直是显示??
而英文和数字都是正常
还有一点很奇怪,我直接用Navicat Lite8添加中文数据,select出来的中文就可以显示
请问下,这个问题如何解决,希望能讲的详细点,我是新手,最好别太深奥
当数据添加进入数据库后,英文和数字都可以显示,但是中文就会变成??
我感觉是字符集用的不对
在使用Navicat Lite8进行数据库的创建时,会有两个选项,分别是Character set和Collation
前者我试过了BIG5,gb2312,gbk,utf8,当选用utf8时,Collation的选项非常多,我就随便选了几种分别试了,但是都是不行,中文一直是显示??
而英文和数字都是正常
还有一点很奇怪,我直接用Navicat Lite8添加中文数据,select出来的中文就可以显示
请问下,这个问题如何解决,希望能讲的详细点,我是新手,最好别太深奥
解决方案 »
- 我的代码有什么错误,为什么报java.lang.String cannot be cast to java.util.Vector
- java.lang.ClassNotFoundException: com.qq.common.User
- 谁能告诉我问题在哪里?(排序排不出来)
- 读取MS SQL的ntext 值
- 怎么把EXCEL表里的数据写入数据库?
- Java的安装设置
- Thinking in java 第十五章的部分问题
- 求助:double类型的值(OutputFormat)类
- 初学JAVA 有道题目请教
- 急救!!!
- 如何安装Java HotSpot Server VM(-server)
- java读取txt(大txt文件)乱码问题
String sql = "insert into guest values(?,?,?,?,?,?,?,?)";
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, id);
ps.setString(2, fname.getText().trim());
ps.setString(3, faddress.getText().trim());
ps.setString(4, fkind.getText().trim());
ps.setString(5, ftrade.getText().trim());
ps.setString(6, fnumber.getText().trim());
ps.setString(7, femail.getText().trim());
ps.setString(8, fbusiness.getText().trim());
int r = ps.executeUpdate();
if(r > 0)
{
//弹出一个对话框
JOptionPane.showMessageDialog(null,"添加成功");
}
else
{
JOptionPane.showMessageDialog(null,"添加失败");
}
ps.close();
//在mysql下执行下面语句试一下
set names 'gbk'
你设置个断点在你程序,看你的从request中接受的是不是乱码!
default-character-set=utf8
好像有两处都要改,试试看
&useUnicode=true&characterEncoding="utf-8"
jdbc:mysql://localhost:3306/dultscoreuseUnicode=true&characterEncoding=gbk"
还有(从doc下查表时,如果不设置,看到的都是??,但是对程序没有影响)
mysql下有个my.ini的文件
里面这句话,default-character-set=GBK