关于mysql中插入中文的问题

Cycle_C 发布于 2012/03/08 17:49
阅读 1K+
收藏 0

数据库:demo

表:user

编码:utf-8;

具体表结构:

+----------+-------------+------+-----+---------+-------+

| Field    | Type        | Null | Key | Default | Extra |

+----------+-------------+------+-----+---------+-------+

| id       | varchar(20) | NO   | PRI | NULL    |       |

| name     | varchar(20) | YES  |     | NULL    |       |

| age      | int(11)     | YES  |     | NULL    |       |

| birthday | date        | YES  |     | NULL    |       |

+----------+-------------+------+-----+---------+-------+

在doc下面执行:insert into user values("hello","ss",15,"2012-3-8") ;时没有问题,但是当执行insert into user values("李兴华","ss",15,"2012-3-8") ;时报错:Incorrect String value :'\xco\xee\xdo\xcb\xbb\xaa' for column 'name' at row 1 

此时,doc的编码为GBK,以为是这里的编码问题,就把doc的编码改为utf-8,再重新执行同样的语句,结果直接就退出mysql了..

同样的语句,在navicat中执行,执行没有问题,但是在doc下查找之后变成了乱码.请问会是doc的问题吗??

 

加载中
0
kakala
kakala
好像使用哪个什么 mysql_escape_string 转一下,然后使用‘%s’把名字括起来,就可以解决了
kakala
kakala
@Epaxj : mysql自带的的,不是php的
Cycle_C
Cycle_C
这个函数,是php的吧..
0
无名人士
无名人士
mysql> create table user (
    -> id varchar(10) not null primary key,
    -> name varchar(10) not null,
    -> age int(3),
    -> birthday date
    -> )charset=utf8;
Query OK, 0 rows affected (0.06 sec)

mysql> insert into user values('0123490102','李兴华',20,curdate());
Query OK, 1 row affected (0.11 sec)

mysql> select * from user;
+------------+--------+------+------------+
| id         | name   | age  | birthday   |
+------------+--------+------+------------+
| 0123490102 | 李兴华 |   20 | 2012-03-08 |
+------------+--------+------+------------+
1 row in set (0.00 sec)
无名人士
无名人士
惭愧,我也不知道是什么原因了,一般这种问题还是不会出现的
Cycle_C
Cycle_C
你好,我直接执行了你给的的脚本,在插入含有中文时,mysql又被退出了..否则成功执行.
0
无名人士
无名人士
用show create table user查看一下你建表语句的charset
Cycle_C
Cycle_C
同样也是utf-8..
0
leo108
leo108
那个不叫doc,也不叫dos,叫cmd
Cycle_C
Cycle_C
谢谢提醒~~
Cycle_C
Cycle_C
@大东哥 : 呃.不好意思...
大东哥
大东哥
哎,还好看了回贴,我对着那个doc发呆了半天。
0
pyawen
pyawen

没必要计较这个   命令行下基本没啥用的 你直接用phpmyadmin 来测试的好   

一般最多导入大的数据库的时候才会用这个。。。。

Cycle_C
Cycle_C
谢谢你的关注.不过我学的是基于jsp的..记得之前都可以插入中文的.现在出现这些问题,想了解一下而已..
0
yunfound
yunfound

set names 'utf8';

再做insert

Cycle_C
Cycle_C
还是不行..
Cycle_C
Cycle_C
数据库在创建的时候就已经指定为utf-8了,还要另外再指定字段的编码??
返回顶部
顶部