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. Mysql共享锁实例_mysql共享锁与排他锁用法实例分析
  2. MySQL学习(四)查询
  3. 原生js声音播放代码
  4. 构造函数,拷贝构造函数,赋值函数
  5. MySQL之EXPLAIN(索引优化)
  6. fb50 sap 报记账码未定义_XX项目SAP关键用户培训固定资产
  7. java 是怎么跨平台运行的
  8. 实验方法怎么写_小学作文怎么写?“把短句变长句”等3种方法帮孩子提高作文水平!...
  9. 百度课程——基于深度学习的自然语言处理
  10. 护网杯 task_shoppingCart 记录
  11. opengl es3.0游戏开发学习笔记2--绘制地月星系
  12. 一阶线性微分方程的初等积分法例题
  13. Hotspot 偏向锁BiasedLocking 源码解析
  14. python美化excel_python3哪个库可以实现格式美化?
  15. 电路交换、报文交换、分组交换
  16. .net 3des 解密
  17. java基于ssm的自助旅游管理系统
  18. 基于javaweb(springboot)汽车配件管理系统设计和实现以及文档报告
  19. Unity学习笔记:个人学习项目《疯狂天才埃德加》纠错文档
  20. 苹果Mac Mini SD读卡器支持2TB内存卡

热门文章

  1. 小型超声波PCB电路板设计
  2. (已更新)趣玩猜谜语小程序5.1.0】功能模块+前端+内含1000多题目+文字图片自定义
  3. 元素周期表,python直接复制
  4. SQL进阶--用SQL进行集合运算
  5. VLC修改字幕大小位置无效
  6. OpenGL 4.0 Shading Language Cookbook-中文版问世了
  7. 第八届中国香料香精学术研讨会
  8. yyyy-MM-dd HH:mm:ss格式的正则表达式(含闰年)
  9. 独家! 11省/直辖市,未来三年5G“重要应用项目”建设清单汇总
  10. 透明大页相关内核参数_Oracle关于内存参数及大页设置的相关概念和设置之hugepage概念和配置...