emoji 表情字符插入的配置
2015-05-01 13:44
267 查看
最近做的项目中,在插入 �� 字符时报错了
在苦苦挣扎了数小时后将其解决掉了~~ 只要将 utf8 转到 utf8mb4 就好了
这个问题其实不是那么难,之所以花了比较长的时间来解决主要还是由于对于 MySQL 的配置不是很清楚,还好使用的数据库版本是 5.5.39,因为够幸运 在版本MySQL 5.5.3 (released in early 2010)时,刚好MySQL 支持了 utf8mb4 字符集。
具体 utf8 和 utf8mb4 的区别,可以参考https://mathiasbynens.be/notes/mysql-utf8mb4
下面把相应的解决方案贴出来,感谢大牛无处不在啊~~
要处理这样的状况肯定少不了更改 /etc/mysql/my.cnf 文件咯,具体文件的位置根据自己的配置查找吧。
我们查看下 MySQL Server 现有的字符集吧
这是我现在数据库的配置
接下来我们在 my.cnf 中添加以下配置
配置后的情况
可以看到配置中的 client、connection、database、result、server 都是 utf8mb4 了。到这里其实就完成了 90%,只要验证下就知道了。
很好,没有报错,接下来进行查询,可以看看是否能够正常显示
这一步也正确!
这样我们对于数据库的配置也算完成了,不过还要注意的一个问题就是当前操作的数据库、数据表、字段同样是需要支持 utf8mb4 的
all done!
在做这个更改的过程中我其实同时使用了 mysql-workbench 和 mysql 进行访问的, 但是奇怪的是
在 mysql 命令下显示的是本地数据库的配置,而在 mysql-workbench 中的却不是,相当郁闷啊~~
可以看到 client、connection 等没有被更改为 utf8mb4, 不知道是不是 mysql-workbench 是否还有其他的配置,遗憾的是还没有找到具体的配置方案,不过呢,作为临时的解决方案,可以通过以下的命令来处理
这样感觉相当方便啊,一下子全给改掉了,不过不是持久的~~
~~噢噢,暂给出此种方案,知道原因的帅哥靓妹还望给个提示呢 ^_^
ERROR 1366: 1366: Incorrect string value: '\xF0\x9D\x8C\x86' for column 'vl' at row 1
在苦苦挣扎了数小时后将其解决掉了~~ 只要将 utf8 转到 utf8mb4 就好了
这个问题其实不是那么难,之所以花了比较长的时间来解决主要还是由于对于 MySQL 的配置不是很清楚,还好使用的数据库版本是 5.5.39,因为够幸运 在版本MySQL 5.5.3 (released in early 2010)时,刚好MySQL 支持了 utf8mb4 字符集。
具体 utf8 和 utf8mb4 的区别,可以参考https://mathiasbynens.be/notes/mysql-utf8mb4
下面把相应的解决方案贴出来,感谢大牛无处不在啊~~
要处理这样的状况肯定少不了更改 /etc/mysql/my.cnf 文件咯,具体文件的位置根据自己的配置查找吧。
我们查看下 MySQL Server 现有的字符集吧
这是我现在数据库的配置
接下来我们在 my.cnf 中添加以下配置
[client] default-character-set=utf8mb4 [server] character_set_server=utf8mb4
配置后的情况
可以看到配置中的 client、connection、database、result、server 都是 utf8mb4 了。到这里其实就完成了 90%,只要验证下就知道了。
很好,没有报错,接下来进行查询,可以看看是否能够正常显示
这一步也正确!
这样我们对于数据库的配置也算完成了,不过还要注意的一个问题就是当前操作的数据库、数据表、字段同样是需要支持 utf8mb4 的
# For each database: ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; # For each table: ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # For each column: ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
all done!
在做这个更改的过程中我其实同时使用了 mysql-workbench 和 mysql 进行访问的, 但是奇怪的是
SHOW VARIABLES LIKE '%character%'
在 mysql 命令下显示的是本地数据库的配置,而在 mysql-workbench 中的却不是,相当郁闷啊~~
可以看到 client、connection 等没有被更改为 utf8mb4, 不知道是不是 mysql-workbench 是否还有其他的配置,遗憾的是还没有找到具体的配置方案,不过呢,作为临时的解决方案,可以通过以下的命令来处理
SET NAMES utf8mb4
这样感觉相当方便啊,一下子全给改掉了,不过不是持久的~~
~~噢噢,暂给出此种方案,知道原因的帅哥靓妹还望给个提示呢 ^_^
相关文章推荐
- jQuery实现在textarea指定位置插入字符或表情的方法
- jQuery实现在textarea指定位置插入字符或表情的方法
- mysql 支持emoji 表情字符的解决方法。
- 在textarea中鼠标指定的位置插入字符或表情
- php过滤文字中的表情字符和mysql服务端对emoji的支持
- myql设置utf8mb4字符,使支持emoji 表情符号
- 原生javascript在textarea光标处插入表情字符
- 让应用程序支持emoji字符 廖雪峰 / 编程 / 2017-4-20 22:01 / 阅读: 5051 什么是emoji?就是这些表情和符号:
- 【Java开发常见问题解决】文本框表情emoji字符过滤处理方法
- 在textarea指定位置插入字符或表情
- emoji 表情 插入mysq后 变成问号
- js在textarea光标处插入表情字符(ie,火狐兼容)
- MySQL 插入emoji 表情
- emoji 表情符号 插入MySQL数据库报错
- (手机表情过滤) Emoji与unicode特殊字符的处理
- Object-c 中截取包含(中、英文、表情符号emojiicon)混合字符串的每个字符并获取此字符的unicode值
- emoji字符不能插入MySQL数据库,提示“'\xF0\x9F\x98\x84' for column 'XXXX' at row 1”
- 重造字符实现插入表情
- [安卓项目学习笔记]将文本中的emoji字符处理为表情图片
- 在textarea指定位置插入字符或表情