项目中要将抓取一些网页内容保存到mysql数据库中,当抓取的内容中包含中文时,在控制台打印出来的中文是正常显示的,但存入数据库表中时,显示乱码。
进入mysql命令行,执行以下命令:
show variables like "%char%";
发现character_set_server是latin1的,要改成utf8,可以执行以下命令:
set character_set_server='utf8';
但是,character_set_server如果默认为latin1,要永久更改,用set命令是行不通的,而更改my.ini文件,也没有效果。
永久更改方案:在MySQL的安装文件中进入bin目录下,双击MySQLInstanceConfig.exe,重新走一遍server的配置,但需要注意的是,在Character Set环节,要选择第三项,character选择utf8,(第一项是默认server字符集为latin1)。
这时向数据库中存入数据库时,中文显示正常,从网页中显示表数据时,中文也正常。