emoji

让MySQL支持Emoji表情 mysql 5.6

与世无争的帅哥 提交于 2020-05-06 06:44:56
最近在做微信相关的项目,其中MySQL 要存储emoji表情,因此发现我们常用的utf8 字符集根本无法存储表情。网上有不少替代方案。本人还是采用了修改MySQL字符集的方案简单快捷。 首先将我们数据库默认字符集由utf8 更改为utf8mb4,对应的表默认字符集也更改为utf8mb4 已经存储表情的字段默认字符集也做了相应的调整。 SQL 语句如: # 修改数据库: ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; # 修改表: ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 修改表字段: ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 其次修改MySQL配置文件 新增如下参数: [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld]

Java 解决Emoji表情过滤问题

会有一股神秘感。 提交于 2020-05-06 03:23:52
Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错。 原因: UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。 方法1.将已经建好的表也转换成utf8mb4 2,写个工具类:过滤掉emoji表情符号 public class EmojiFilter { private static boolean isEmojiCharacter(char codePoint) { return (codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA) || (codePoint == 0xD) || ((codePoint >= 0x20) && (codePoint <= 0xD7FF)) || ((codePoint >= 0xE000) && (codePoint <= 0xFFFD)) || ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF)); } /** * 过滤emoji 或者 其他非文字类型的字符 * * @param source * @return */ public static String filterEmoji(String source) { if

【咸鱼教程】本地图片上传。动态GIF表情图生成

只愿长相守 提交于 2020-05-06 02:44:07
本案例参考: http://emoji.decathlon.trustingme.cn/ 但是实现方式不一样。 教程目录 一 head first 二 打开本地图片功能 三 拖拽和缩放手势,调整图片 四 gifjs工具类动态表情合成 五 demo源码下载 一 head first 显示原理 1.1 利用<input>标签打开本地图片。 1.2 FileReader读取图片,生成base64字符串给Egret显示。 1.3 Egret中利用RenderTexture截取多张表情图的base64字符串,传给gifjs工具类生成动态GIF。 二 本地图片上传 首先我们实现打开本地图片功能。微信里有图片接口,但是还得接微信jssdk。 我们这里用<input>标签实现。 [AppleScript] 纯文本查看 复制代码 ? 1 < input type = "file" id = "uploadImg" > 页面显示效果这样 <ignore_js_op> 我们把它隐藏起来,不然显示在游戏里就很丑了。 [AppleScript] 纯文本查看 复制代码 ? 1 < input type = "file" id = "uploadImg" style = "display:none" / > 我们在exml上创建一个上传按钮,ID为openFileBtn。 创建一个确认按钮,ID为okBtn。

python微信库 --- itchat

帅比萌擦擦* 提交于 2020-05-04 01:51:26
python实现微信接口——itchat模块 安装 pip install itchat 登录 itchat.auto_login() # 这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要扫描二维码 加入 hotReload==True # 那么就会保留登录的状态,至少在后面的几次登录过程中不会再次扫描二维码,该参数生成一个静态文件itchat.pkl用于存储登录状态 退出及登录完成后调用的特定的方法 这里主要使用的是灰调函数的方法,登录完成后的方法需要赋值在 loginCallback 中退出后的方法,需要赋值在 exitCallback 中.若不设置 loginCallback 的值, 将会自动删除二维码图片并清空命令行显示. import itchat, time def lc(): print ( " Finash Login! " ) def ec(): print ( " exit " ) itchat.auto_login(loginCallback =lc, exitCallback= ec) time.sleep() itchat.logout() # 强制退出登录 回复消息 send send(msg="Text Message", toUserName=None) 参数: msg :

python微信库 --- itchat

时间秒杀一切 提交于 2020-05-04 01:19:09
python实现微信接口——itchat模块 安装 pip install itchat 登录 itchat.auto_login() # 这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要扫描二维码 加入 hotReload==True # 那么就会保留登录的状态,至少在后面的几次登录过程中不会再次扫描二维码,该参数生成一个静态文件itchat.pkl用于存储登录状态 退出及登录完成后调用的特定的方法 这里主要使用的是灰调函数的方法,登录完成后的方法需要赋值在 loginCallback 中退出后的方法,需要赋值在 exitCallback 中.若不设置 loginCallback 的值, 将会自动删除二维码图片并清空命令行显示. import itchat, time def lc(): print ( " Finash Login! " ) def ec(): print ( " exit " ) itchat.auto_login(loginCallback =lc, exitCallback= ec) time.sleep() itchat.logout() # 强制退出登录 回复消息 send send(msg="Text Message", toUserName=None) 参数: msg :

Mysql的utf8与utf8mb4区别,utf8mb4_bin、utf8mb4_general_ci、utf8mb4_unicode_ci区别

半世苍凉 提交于 2020-05-01 01:17:23
UTF-8是使用1~4个字节,一种变长的编码格式,字符编码。mb4即 most bytes 4,使用4个字节来表示完整的UTF-8。 mysql的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符集存储。包括 Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和很多不常用的汉字,以及任何新增的 Unicode 字符等等。 总结:MySQL的utf8是utfmb3,只有三个字节,节省空间但不能表达全部的UTF-8。所以推荐使用utf8mb4。 utf8mb4_bin:将字符串每个字符用二进制数据编译存储,区分大小写,而且可以存二进制的内容。 utf8mb4_general_ci:ci即case insensitive,不区分大小写。没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。但是,在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。 utf8mb4_unicode_ci:是基于标准的Unicode来排序和比较

【今日CV 计算机视觉论文速览】Mon, 4 Mar 2019

你。 提交于 2020-04-30 21:05:46
今日CS.CV计算机视觉论文速览 Mon, 4 Mar 2019 Totally 39 papers Interesting: 📚 MaskScoring R-CNN 为实例分割任务中增加了预测质量的评分结果 ,文章提出了网络模块学习预测实例的质量,并为实例分割结果进行打分。这一模块通过实例特征和对应的预测掩膜联合起来得到掩膜区域,实验表明这一机制提高了实例分割的结果,并显著增强了多个的性能。(from 华中科技大学) 实验显示MaskIoU与分数具有更强的相关性: 网络中输出maskIoU的区域及其不同设计: 代码:https://github.com/zjhuang22/maskscoring_rcnn. ref 公众号 📚 EvoNet基于多图像的超分辨网络 ,利用基于残差的EvoNet输出多张超分辨重建图像(2X),并基于图像进行shift-and-fusion融合(2x),最终利用Evo成像模型得到最终的超分辨结果。(from Poland and with Silesian University of Technology) 一些结果: 一些相关算法比较: 高精度数据集 DIV 2K 📚 视频中非标记目标的探索 ,面临着定位和多重物体的挑战。此外现实中的物体还具有明显的长尾效应。研究人员利用10+个小时的视频数据中抽取了360,000个目标,并基于双目多帧候选区域

mysql中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci的关系

你离开我真会死。 提交于 2020-04-30 20:54:36
mysql中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci的关系 一、总结 一句话总结: utf8mb4是utf8的超集并完全兼容utf8,能够用四个字节存储更多的字符。 1、utf8mb4出现的原因是什么? MySQL里面实现的utf8最长使用3个字符,包含了大多数字符但并不是所有。例如emoji和一些不常用的汉字,如“墅”,这些需要四个字节才能编码的就不支持。 2、utf8mb4_unicode_ci和utf8mb4_general_ci的区别是什么? utf8mb4_unicode_ci是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序 utf8mb4_general_ci没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。 但是,在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。 二、mysql中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci 转自或参考:mysql中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci https://www.cnblogs.com/amyzhu/p/9595665.html 1.utf8与utf8mb4(utf8 most bytes 4) MySQL 5.5

How to pass a C String Emoji to Java via JNI

痴心易碎 提交于 2020-04-30 11:11:54
问题 I am trying to pass a database value to Java via JNI : __android_log_print(ANDROID_LOG_ERROR, "MyApp", "c_string >>> %s", cStringValue); prints : c_string >>> 👑👟👓 env->SetObjectField(jPosRec, myJniPosRec->_myJavaStringValue, env->NewStringUTF(strdup(cStringValue))); However, this fails without errors. How can you go about passing special characters (such as emojis) to Java in JNI? Thank you all in advance. 回答1: Cribbing from my answer here, you can use the JNI equivalent of Charset.forName(

How to pass a C String Emoji to Java via JNI

非 Y 不嫁゛ 提交于 2020-04-30 11:10:50
问题 I am trying to pass a database value to Java via JNI : __android_log_print(ANDROID_LOG_ERROR, "MyApp", "c_string >>> %s", cStringValue); prints : c_string >>> 👑👟👓 env->SetObjectField(jPosRec, myJniPosRec->_myJavaStringValue, env->NewStringUTF(strdup(cStringValue))); However, this fails without errors. How can you go about passing special characters (such as emojis) to Java in JNI? Thank you all in advance. 回答1: Cribbing from my answer here, you can use the JNI equivalent of Charset.forName(