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编码获取和编码转换相关推荐

  1. emoji unicode java_4字节emoji表情对应的Unicode编码获取和编码转换

    GitHub Flavored Markdown 今天研究了一天Markdown移动端和pc端统一实现方式,由于以前有搞过移动端富文本编辑器,搞Markdown简单多了: 其中GFM的表情语法不错,比 ...

  2. java emoji转unicode编码_4字节emoji表情对应的Unicode编码获取和编码转换

    GitHub Flavored Markdown 今天研究了一天Markdown移动端和pc端统一实现方式,由于以前有搞过移动端富文本编辑器,搞Markdown简单多了: 其中GFM的表情语法不错,比 ...

  3. emoji表情包字符分割问题引出的编码知识

    经验分享:一个小小emoji尽然牵扯出来这么多东西? 目录 问题 概念常识 utf8mb4 ASCII码 Unicode 平面 表示范围 实现方式 解决emoji截取的问题 UTF-16 surrog ...

  4. 【拓展】谈谈字符编码:Unicode编码与emoji表情编码

    " 开发过程中,字符编码是我们一定要掌握的知识.本文回顾ASCII标准,并介绍了Unicode和UTF-8.UTF-16方案间的关系,各自是如何存储的,最后介绍了Unicode中emoji表 ...

  5. 有关emoji表情以及utf-16编码

    昨日IOS组的同事遇到一个棘手的问题:当输入框内含有emoji表情时,如何获取文本框内的字符数(一个emoji表情算一个字符). 先从我最近接触的JAVA说起,JAVA中,在使用String的leng ...

  6. 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 ...

  7. Mysql保存emoji表情

    Mysql保存emoji表情 Emoji 在我们生活中真的是越来越常见了,几乎每次发消息的时候不带个 Emoji,总觉得少了点什么,似乎干巴巴的文字已经无法承载我们丰富的感情了.对于我们开发者来说,如 ...

  8. java emoji显示乱码_Java 解决Emoji表情过滤问题

    Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错. 原因: UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去 ...

  9. mysql 显示表情符号_mysql 支持emoji 表情字符的解决方法。

    1.utf8 字符集最多3个字符,而emoji表情字符是unicode大字符集,需要4个字节表示,所以utf8无法表示. mysql要存储emoji字符,需要设成utf8mb4字符集,意思就是utf8 ...

最新文章

  1. 基于Sobel计算图像梯度图
  2. linux patches工具,patch工具入门
  3. UTF-8,UTF-16和UTF-32
  4. Postman安装与使用(网络请求神器)--post、get请求
  5. BeanShell异常处理
  6. 刷题总结——蜥蜴(ssoj网络流)
  7. VS如何定制自己的模板信息
  8. linux_安装_SecureCRT下载安装登陆ubuntu配色和文件传输
  9. docker镜像制作、数据管理
  10. 计算机专业实习报告-5000字+,以及计算机专业实习周记-15篇
  11. HDP直播个性化设置教程,简单几步提升电视盒子/投影仪观影体验
  12. 2018年湘潭大学程序设计竞赛 - 题解
  13. 回首2021,展望2022 | 观成科技步履不停,刻画安全图腾
  14. 计算机为什么采用二进制
  15. Ubuntu:Gparted,linux 的pqmagic分区魔术师
  16. 20210725:FLAC刻录音乐CD教程02-ape刻盘
  17. 数据结构—排序(第九章)
  18. 判断全角与半角及两者之间的转换
  19. linux下编译和安装log4cxx,Linux下log4cxx的安装使用
  20. IT研发人员的四种工作

热门文章

  1. 如何使用React Image Lightbox
  2. 云-腾讯云-云通信:云通信(IM)
  3. 8月23日RSG素描:从套路到心理能量
  4. 阿里云轻量应用型服务器和ECS服务器比较
  5. java jre精简_精简 jre
  6. Python游戏编程实践2:魔塔
  7. mysql执行语句时c盘突然占满_c盘里莫名其妙的被占满。。求解决
  8. vue-devTools Chrome安装配置
  9. 当“加班”成为一种文化
  10. 浅谈利用红外传感和数字图像处理完善电子围栏系统