4字节emoji表情对应的Unicode编码获取和编码转换
GitHub Flavored Markdown
今天研究了一天Markdown移动端和pc端统一实现方式,由于以前有搞过移动端富文本编辑器,搞Markdown简单多了;
其中GFM的表情语法不错,比如笑脸?,准备采用一下。
又想到了手机输入法输入表情浏览器页面接收到的是一个字符,如果能转换成?就更能统一表现了,就像微信Android怎么输入输入法里面奇丑的emoji到了微信里面都是微信自带的好看的emoji图标,其实这个转换好几年前就有开始了解,不过没有什么进展。
编码问题
前几天刚好有需求要把emoji对应的Unicode编码转换成文字,比如1f601对应的这个笑脸?,但没有找到C#的把1f601转换成文字的方法,用Encoding.Unicode怎么转换都不对,最后直接复制emoji字符,Visual Studio里面竟然直接显示出来了,那就直接用字符吧,都不用转换了,然后不了了之了。
今天搞Markdown编辑器,由于前面GFM的原因,又对编码进行测试,没查到什么靠谱资料,到时找到很多emoji和Unicode对照表,https://apps.timwhitlock.info/emoji/tables/unicode
拿一个笑脸https://apps.timwhitlock.info/unicode/inspect/hex/1F601
开刀~
正确姿势
【C#】
Encoding.UTF32.GetBytes("?")
->
["1", "f6", "1", "0"]
【js】
"?".codePointAt(0).toString(16)
->
1f601
UTF-32结果一致
【C#】
Encoding.UTF8.GetBytes("?")
->
["f0", "9f", "98", "81"]
【js】
encodeURIComponent("?")
->
%F0%9F%98%81
UTF-8结果一致
错误姿势
【C#】
Encoding.Unicode.GetBytes("?")
->
["3d", "d8", "1", "de"]
【js】
"?".codePointAt(0).toString(16)
->
1f601
这个Unicode反而不一致了
其实前段时间一直转换不对,就是错怪Encoding.Unicode了,C#里面Encoding.Unicode=Little-Endian UTF-16
没错是UTF-16,四字节编码老实用UTF-32就和浏览器结果一致了。
好开森,记录嘚瑟一下
Java是不是这样就搞不清楚了,电脑内存小了点就不开Eclipse敲代码了。
有了正确的转换关系,不管前端对用户输入进行替换还是后端替换都能实现了。下一步制作GFM emoji名字和Unicode编码对照表,挑几十个emoji放到编辑器菜单,剩余的只提供图片。
关键是素材GitHub提供了https://github.com/WebpageFX/emoji-cheat-sheet.com/tree/master/public/graphics/emojis
,清晰度还不错,手机上三倍缩放应该挺清晰,直接拿来用
转载于:https://www.cnblogs.com/xiangyuecn/p/8598605.html
4字节emoji表情对应的Unicode编码获取和编码转换相关推荐
- emoji unicode java_4字节emoji表情对应的Unicode编码获取和编码转换
GitHub Flavored Markdown 今天研究了一天Markdown移动端和pc端统一实现方式,由于以前有搞过移动端富文本编辑器,搞Markdown简单多了: 其中GFM的表情语法不错,比 ...
- java emoji转unicode编码_4字节emoji表情对应的Unicode编码获取和编码转换
GitHub Flavored Markdown 今天研究了一天Markdown移动端和pc端统一实现方式,由于以前有搞过移动端富文本编辑器,搞Markdown简单多了: 其中GFM的表情语法不错,比 ...
- emoji表情包字符分割问题引出的编码知识
经验分享:一个小小emoji尽然牵扯出来这么多东西? 目录 问题 概念常识 utf8mb4 ASCII码 Unicode 平面 表示范围 实现方式 解决emoji截取的问题 UTF-16 surrog ...
- 【拓展】谈谈字符编码:Unicode编码与emoji表情编码
" 开发过程中,字符编码是我们一定要掌握的知识.本文回顾ASCII标准,并介绍了Unicode和UTF-8.UTF-16方案间的关系,各自是如何存储的,最后介绍了Unicode中emoji表 ...
- 有关emoji表情以及utf-16编码
昨日IOS组的同事遇到一个棘手的问题:当输入框内含有emoji表情时,如何获取文本框内的字符数(一个emoji表情算一个字符). 先从我最近接触的JAVA说起,JAVA中,在使用String的leng ...
- Java | MySQL Emoji表情写入数据库时报错问题解决,Incorrect string value: ‘\xF0\x9F\x98\x84\xF0\x9F...‘ for column
现象: 将Emoji表情存入数据库时,报如下错误: Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x99\x83\xF ...
- Mysql保存emoji表情
Mysql保存emoji表情 Emoji 在我们生活中真的是越来越常见了,几乎每次发消息的时候不带个 Emoji,总觉得少了点什么,似乎干巴巴的文字已经无法承载我们丰富的感情了.对于我们开发者来说,如 ...
- java emoji显示乱码_Java 解决Emoji表情过滤问题
Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错. 原因: UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去 ...
- mysql 显示表情符号_mysql 支持emoji 表情字符的解决方法。
1.utf8 字符集最多3个字符,而emoji表情字符是unicode大字符集,需要4个字节表示,所以utf8无法表示. mysql要存储emoji字符,需要设成utf8mb4字符集,意思就是utf8 ...
最新文章
- 基于Sobel计算图像梯度图
- linux patches工具,patch工具入门
- UTF-8,UTF-16和UTF-32
- Postman安装与使用(网络请求神器)--post、get请求
- BeanShell异常处理
- 刷题总结——蜥蜴(ssoj网络流)
- VS如何定制自己的模板信息
- linux_安装_SecureCRT下载安装登陆ubuntu配色和文件传输
- docker镜像制作、数据管理
- 计算机专业实习报告-5000字+,以及计算机专业实习周记-15篇
- HDP直播个性化设置教程,简单几步提升电视盒子/投影仪观影体验
- 2018年湘潭大学程序设计竞赛 - 题解
- 回首2021,展望2022 | 观成科技步履不停,刻画安全图腾
- 计算机为什么采用二进制
- Ubuntu:Gparted,linux 的pqmagic分区魔术师
- 20210725:FLAC刻录音乐CD教程02-ape刻盘
- 数据结构—排序(第九章)
- 判断全角与半角及两者之间的转换
- linux下编译和安装log4cxx,Linux下log4cxx的安装使用
- IT研发人员的四种工作