PHP 做微信二次开发,获取基本信息用户名中含有 Emoji 表情导致写入数据库出错,求解决方案

2015-04-08 16:38:23 +08:00
 hrbwaxdoll

RT,感谢

4634 次点击
所在节点    微信
12 条回复
shiny
2015-04-08 16:39:04 +08:00
charset 设置为 utf8mb4
hrbwaxdoll
2015-04-08 16:40:19 +08:00
已有的数据库,CentOS+Mysql,如何修改?刚刚有在其它地方搜索到这个方法,但试了半天无果啊。
anewg
2015-04-08 16:46:42 +08:00
lxrmido
2015-04-08 16:46:58 +08:00
遇上这个问题的时候,我用urlencode临时解决了……
alex321
2015-04-08 16:48:36 +08:00
我用了 base64。。。反正我这里不用按照用户昵称检索。。
abelyao
2015-04-08 17:24:59 +08:00
@Livid 大大曾发过一个帖子 /t/137724
pubby
2015-04-08 17:32:20 +08:00
不需要作为查询条件的话就用一些转换的办法存,比如json_encode() 后存就绕开了
hrbwaxdoll
2015-04-08 17:50:19 +08:00
我也不按用户昵称检索,感谢楼下各位,晚上试一下,再来表示感谢。
raincious
2015-04-08 18:00:25 +08:00
@hrbwaxdoll

PHP+MySQL的话,一楼的方式是最优解,除非你已经有了大量数据,进行编码切换完全不可能的时候。

编码转换:
http://stackoverflow.com/questions/6115612/how-to-convert-an-entire-mysql-database-characterset-and-collation-to-utf-8
(操作前先备份)
hrbwaxdoll
2015-04-08 22:30:25 +08:00
@raincious 转换为一楼的格式会不会有其它未知影响?
@pubby 显示的时候还能显示成图标吗?
@abelyao 感谢~~~!
@anewg 已用这个临时解决,然后查询更好的方法,十分感谢。
@shiny 十分感谢
raincious
2015-04-08 23:06:06 +08:00
@hrbwaxdoll

刚又搜索了下:
http://dba.stackexchange.com/questions/8239/how-to-easily-convert-utf8-tables-to-utf8mb4-in-mysql-5-5

里面提到
> Note, however, that you cannot fully automate the conversion from utf8 to utf8mb4.

虽然这个答案没被接受,但楼主最好还是备份一个冷的下来按照上面链接里提到的要点和自己项目的状况做测试,看是否会造成问题,这样也最稳妥。

当然,有的时候最优解也有无法使用的时候,这个时候就只能按照楼上们的说法进行储存时和读取时转换了。
konakona
2015-04-27 19:40:55 +08:00
我想知道可不可以實現數據庫裏(大部分gbk)某一個表(如message)實現utf8mb4然後完美支持表情呢?

我現在在本機做了這樣的測試,但是效果還沒有出來呢...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/182357

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX