存入到mysql的字符数据都是问号

存入到mysql的字符数据都是问号,第1张

数据库创建后,数据库的默认字符集是不能修改的,可以尝试一下下面的方法

1 创建表时使用DEFAULT CHARSET = UTF8指定字符集,再插入中文查看是否乱码

CREATE TABLE TAB1 (COL XXXXXXXXXXXXXXXXXXX) ENGINE = INNODB DEFAULT CHARSET = UTF8 COMMENT 'TAB1'

2 如果1方法不行的话,删库重建,重新指定数据库字符集,mysql重建数据库还是很简单的

检查并修改mysql的my.ini的配置文件

default-character-set=utf8

建立数据库是要指定字符集

create database mydb default character set utf8 collate utf8_general_ci

建立数据表示也要指定字符集:

出问题的命令:

CREATE TABLE IF NOT EXISTS `mydb` (

`username` varchar(64) NOT NULL,

`userid` int(11) NOT NULL,

) ENGINE=InnoDB DEFAULT CHARSET=latin1

正确的命令:

CREATE TABLE IF NOT EXISTS `mydb` (

`username` varchar(64) NOT NULL,

`userid` int(11) NOT NULL,

) ENGINE=InnoDB DEFAULT CHARSET=utf8

插入的数据乱码有很多原因:

1、你要检查一下页面的编码和数据库设置的字符集是否一样,要么都是utf8,要么都是gbk的

2、如果第一点说的两边编码是统一的,你可以在链接数据库的时候加上mysql_query("set names utf8")

3、加上之后还是不行的话,在检查你的页面编码,如果是utf8的话,请选择没有bom的utf8编码

4、以上都没问题的话,还出现乱码的话,修改mysql的配置文件,my.ini加上character-set-server=utf8,然后重启mysql服务就可以了

一般出现乱码的话,基本就是这些原因了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10709004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存