php向mysql数据库传入字符串乱码_php和phpMyAdmin向mysql数据库插入中文数据导致乱码...

发现用phpMyAdmin向MySQL数据库中插入中文数据乱码,通过php插入中文数据也是乱码。于是就查看数据库中对字符的处理。

我先向数据库中创建一个表webgrades

create table webgrades(班级 varchar(20) ,学号 varchar(11) ,姓名 varchar(10) ,成绩 int (3) );

然后用phpmyadmin向MySQL中插入中文数据乱码,其中SQL语句是这样的

insert into webgrades values("计算机2002.1","20020100101","王丽",95);

,在phpmyadmin中显示中文就出现 “????” 乱码了,怎么办呢?

查看该表的属性,在“操作”->”表选项”中看见”整理”这个下拉框中显示”latin1_swedish_ci”,发现不对,应该使用unicode码,于是将其改成”utf8_general_ci“。再次向表中插入数据,发现中文还是乱码。

查看“表结构”,发现每个字段后面的“整理”都为”latin1_swedish_ci”,于是将其更改成”utf8_general_ci“,再向表中插入中文数据,不显示乱码了。

在创建表的时候应该先添加字段的编码,在字段类型后面添加”CHARACTER SET utf8 COLLATE utf8_general_ci“,比如SQL语句

create table webgrades(

班级 varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci,

学号 varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci,

姓名 varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci,

成绩 int (3));

那么CHARACTER SET utf8 COLLATE utf8_general_ci是干什么用的呢?

如果表的结构指定了CHARACTER SET X和COLLATE Y,那么采用字符集X和校对规则Y。

如果指定了CHARACTER SET X而没有指定COLLATE Y,那么采用CHARACTER SET X和CHARACTER SET X的默认校对规则。

否则,采用默认的字符集和服务器校对规则。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值