数据库是latin1也可以存入中文的~创建表字段的时候,设置字段字符集为UTF-8(utf8 general)就行了
十载的上虞网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整上虞建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“上虞网站设计”,“上虞网站推广”以来,每个客户项目都认真落实执行。
Mysql数据库不能插入中文,一插入就报错,是代码输入错误造成的,解决方法如下:
1、首先使用insert语句,把数据插入到数据库表里。
2、运行后,发现插入语句报错了。点击语句,查看详情,提示说插入的中文语句是不正确的字符串内容。
3、这时右键点击插入数据的表,然后点击表设计。
4、打开表设计界面后,点击上方的Option选项。
5、默认新建的表字符集用的是latin1字符集。要插入中文内容,需要将其改成ubf8字符集。
6、除此之外,需要保存中文内容的字段,也需要将其改成utf8字符集。
7、修改好,保存后,再次运行插入sql语句,可以看到成功插入中文数据了。
1,创建table的时候就使用utf8编码
举个例子:
在每次创建表的时候都在最后加上 character set = utf8 就可以很好的支持中文。
2,修改已经有的table的编码
当使用默认编码创建了一个table的时候,是不能支持中文的,这时候使用如下语句对table_name进行修改:
此后再往这个table插入中文的时候,就可以正常存储和读取了,但不知道为什么之前的乱码还是不能纠正,只能新插入的数据没有问题。
[注意] 我google了一下,有些地方说这个命令也行,但是我测试以后并不行
alter table table_name charset=utf8; #这个语句并没有让table_name支持中文
中文不管用什么字符集来表示(GBK\GB2312\UTF8等),最终都是字节的整数倍,而latin1或者说ISO-8859-1就是满8byte(整字节)的编码方式。无论你传多少个字节进去,mysql都可以认为它是一个或者多个latin字符而已。是不是乱码取决于读出来之后的解码方式,或者说客户端的处理方式。客户端如果知道读出来的是中文,那么就会按照中文的方式来尝试解码,自然就得不到乱码,如果按照其它编码方式来解码,自然就可能是乱码。
CREATE TABLE t_department ( sid varchar(32) NOT NULL, pid varchar(32) NOT NULL, thedata varchar(50) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=gbk; 2)打开你的MySQL目录下的my.ini文件,把里面所有的default-character-set选项设为GBK或者GB2312,保存后重启MySQL。[Zone Yan.] 测试过----ok3)mysql数据库安装的时候。选择语言为gbk的那个,这样在数据库中才可以存放中文。
1.首先修改mysql字符集,这个有说改配置文件,打开my.ini配置文件(MySQL的配置文件),加入:character_set_server = utf8
2.用的是命令行方式修改,如下:进入cmd命令,进入mysql的bin目录下,启动mysql;使用命令:show VARIABLES like 'character%'; 查看当前字符集,发现都是gbk等字符集,这时使用如下命令改变字符集:
mysql SET character_set_client = utf8 ;
mysql SET character_set_connection = utf8 ;
mysql SET character_set_database = utf8 ;
mysql SET character_set_results = utf8 ;
mysql SET character_set_server = utf8 ;
3.无论使用修改配置文件还是使用命令行修改字符集,修改完成后,需要重启mysql服务,这时,再用命令show VARIABLES like 'character%'; 查看当前字符集,已经生效。
4.由于,已经建立了数据库,这时还需要在Navicat for mysql中,将数据库的字符集也改掉。右键数据库,选择数据库属性,如图。 进入后,修改字符集为utf8
5.之后,还需要对每个表点击右键,选择 涉及表 ;然后在“选项”中,将表的字符集进行修改。
6.还需要将varchar类型 字段的的字符集也要改掉,进入设计表中,点中某字段,发现,数据类型果然还是Latin1,那么好,一个一个改过来即可。当然,也可以使用命令的方式修改,命令如下:ALTER TABLE 表名 CHANGE 列名 列名 VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
ps:可以先尝试修改字符,如果修改字符依旧无效可以使用上述的办法。