在进行网络数据采集时,处理Unicode字符串是很痛苦的事情。默认情况下,MySQL也不支持Unicode字符处理。不过你可以设置这个功能(但是这样做会增加数据库的占用空间)。因为在维基百科上我们难免会遇到各种各样的字符,所以最好一开始就让你的数据库支持Unicode。如何修改数据库的支持的字符集。
ALTER DATABASE scrapying CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE pages CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE pages CHANGE title title VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE pages CHANGE content content VARCHAR(10000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
这四行语句改变的内容有:数据库、数据表、以及两个字段的默认编码都从utf8mb4转变成utf8mb4_unicode_ci。执行结果和步骤如下:
现在字符已经转换完成,插入一个中文试试。
insert into pages(title,content) values('火影忍者','佐助鸣人啦啦啦啦啦')
查询插入的结果,显示如下:
中文显示正常,字符切换成功