爬虫写入mysql表里的数据都是这种Unicode编码,怎么转为可读文字

爬虫写入mysql表里的数据都是这种Unicode编码,怎么转为可读文字,第1张

unicode emoji是4个字节的,存不进MySQL里,找到一个转义的库code.iamcal.com/php/emoji/,但是转为Unicode之后,还是4个字节,一样存不进,应该说根本没转。转为其他格式的emoji又怕以后新增了表情不好做,你们在不改数据库编码的前提下,是怎么弄的?

方法1:base_encode64

这种方法是可以,但是旧数据没有经过encode *** 作,取数据的时候如果统一进行decode的话,旧数据会丢失的。

方法2:urlencode

这个似乎可以,对没有经过encode的数据进行decode也不会有影响,而且多次decode似乎也不会有影响。

照着这个修改下服务器的编码

MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。

对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

–查看字符集

mysql>show variables like 'character%'

mysql>show variables like 'collation_%'

修改配置文件:

shell>vi /etc/mysql/my.cnf

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

collation-server = utf8_unicode_ci

init-connect=’SET NAMES utf8′

character-set-server = utf8

2.修改数据库: mysql>ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE …]

3.把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:

mysql>ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE …]

mysql>ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci

只是修改表的默认字符集:

mysql>ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE…]

mysql>ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

4.修改字段的字符集:

mysql>ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE …]

mysql>ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci

5.临时更改连接字符集:mysql>SET NAMES utf8

查看数据库的字符集

mysql>show create database test

查看表的字符集,包括各个字段的字符集,如果各字段没有标明,表示与表的字符集一致

mysql>show create table books \G

查看字段编码

SHOW FULL COLUMNS FROM tbl_name


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

原文地址: http://outofmemory.cn/zaji/7410569.html

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

发表评论

登录后才能评论

评论列表(0条)

保存