我的mysql在安装的时候字符默认的为utf8;
下面是我见库 我查看 库与表的字符编码:| id | name | sex | year |
+----+------+------+------+
| 1 | 杨坤 | 男 | 15 |
| 7 | dd | ? | 15 |
+----+------+------+------+
2 rows in set (0.00 sec)mysql> show create database test;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.01 sec)mysql> show create table user;
+-------+-----------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------------------+
| user | CREATE TABLE `user` (
`id` int(4) NOT NULL,
`name` varchar(10) DEFAULT NULL,
`sex` varchar(9) DEFAULT NULL,
`year` int(4) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-----------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------------------+
1 row in set (0.00 sec)
我用的是开发环境是myeclipse 8.5 ;
jdbC的版本为mysql-connector-java-5.113.jar;
编写代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.text.SimpleDateFormat;
public class AddDemo {
public static final String DBDRIVER="com.mysql.jdbc.Driver";
public static final String DBURL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8";
public static final String DBUSER="root";
public static final String DBPASSWORD="root";
public static void main(String[] args)throws Exception {
Connection conn=null;
PreparedStatement pstmt=null;
int id=7;
String name="dd";
String sex="男";
int year=15;
String sql="insert into user (id,name,sex,year)"+"values(?,?,?,?)";
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
pstmt= conn.prepareStatement(sql);
pstmt= conn.prepareStatement(sql);
pstmt.setInt(1,id);
pstmt.setString(2,name);
pstmt.setString(3,sex);
pstmt.setInt(4,year);
pstmt.executeUpdate();
pstmt.close();
conn.close();
}
}
结果能插入数据 但是中文编码为乱码; 有知道的朋有告诉下问题可能出在哪儿 先谢了
下面是我见库 我查看 库与表的字符编码:| id | name | sex | year |
+----+------+------+------+
| 1 | 杨坤 | 男 | 15 |
| 7 | dd | ? | 15 |
+----+------+------+------+
2 rows in set (0.00 sec)mysql> show create database test;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.01 sec)mysql> show create table user;
+-------+-----------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------------------+
| user | CREATE TABLE `user` (
`id` int(4) NOT NULL,
`name` varchar(10) DEFAULT NULL,
`sex` varchar(9) DEFAULT NULL,
`year` int(4) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-----------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------------------+
1 row in set (0.00 sec)
我用的是开发环境是myeclipse 8.5 ;
jdbC的版本为mysql-connector-java-5.113.jar;
编写代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.text.SimpleDateFormat;
public class AddDemo {
public static final String DBDRIVER="com.mysql.jdbc.Driver";
public static final String DBURL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8";
public static final String DBUSER="root";
public static final String DBPASSWORD="root";
public static void main(String[] args)throws Exception {
Connection conn=null;
PreparedStatement pstmt=null;
int id=7;
String name="dd";
String sex="男";
int year=15;
String sql="insert into user (id,name,sex,year)"+"values(?,?,?,?)";
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
pstmt= conn.prepareStatement(sql);
pstmt= conn.prepareStatement(sql);
pstmt.setInt(1,id);
pstmt.setString(2,name);
pstmt.setString(3,sex);
pstmt.setInt(4,year);
pstmt.executeUpdate();
pstmt.close();
conn.close();
}
}
结果能插入数据 但是中文编码为乱码; 有知道的朋有告诉下问题可能出在哪儿 先谢了
解决方案 »
- 请问MySQL 5.5.25怎么找不到my.ini文件啊?
- left join 带逗号如何做呢?
- 明明可以将数据放入一个数据库,却分了多个库,为嘛
- mysql phpMyAdmin服务器和MySQL 客户端版本 信息不一致 怎么改呢
- 请ACMAIN_CHM大哥不吝指教 继续mysqldump..
- Sqlyog连接Mysql时错误:2004,can't create tcp/ip sokect (10050).请问怎么解决?
- key分区指定存储路径
- 关于mysql网络数据库的问题
- 如何使用属性数固定的若干个表存放任意多个任意结构的二维表?
- 从500万条数据中查询,求优化一条SQL语句
- 这段代码运行不行呢
- mysql初学者必学语句整理
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
ysql> show variables like 'character%';
--------------------------+-------------------------------------------+
Variable_name | Value |
--------------------------+-------------------------------------------+
character_set_client | utf8 |
character_set_connection | utf8 |
character_set_database | utf8 |
character_set_filesystem | binary |
character_set_results | utf8 |
character_set_server | utf8 |
character_set_system | utf8 |
character_sets_dir | D:\MySQL\MySQL Server 5.1\share\charsets\ |
--------------------------+-------------------------------------------+
rows in set (0.00 sec)ysql> insert into user values('1','hh','男','15');
RROR 1366 (HY000): Incorrect string value: '\xC4\xD0' for column 'sex' at row
到底怎么回事啊我 都快 崩溃了