将表情符号从十六进制代码转换为Unicode [英] Converting emoji from hex code to unicode

查看:0
本文介绍了将表情符号从十六进制代码转换为Unicode的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在我的iOS和Android应用程序中使用表情符号。我检查了表情包列表here,它列出了表情包的十六进制代码。当我尝试直接使用U+1F600这样的十六进制代码时,我在应用程序中看不到表情符号。我发现了另一种表示表情符号的方式,看起来像uD83DuDE00。当使用这种符号时,不需要任何额外的代码,就可以在应用程序中看到表情符号。我认为这是表情符号的Unicode字符串。我认为这是一个更普遍的问题,而不是特定于表情符号。如何将表情符号十六进制代码转换为Unicode字符串,如上图所示。我找不到任何列出表情符号的Unicode的列表。

推荐答案

您的问题似乎真的是"如何在知道字符的代码点的情况下显示字符?"

这个问题被证明是相当依赖语言的!现代语言在这方面没什么问题。在SWIFT中,我们这样做:

$ swift
Welcome to Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1). Type :help for assistance.
  1> "u{1f600}"
$R0: String = "😀"

在JavaScript中,它是相同的:

$ node
> "u{1f600}"
'😀'

在Java中,您必须多做一点工作。如果你想直接使用代码点,你可以说:

new StringBuilder().appendCodePoint(0x1f600).toString();

序列"uD83DuDE00"也适用于所有三种语言。这是因为这些"字符"实际上是Unicode所说的代理,当它们以某种方式组合在一起时,它们代表单个字符。有关这一切如何工作的详细信息,可以在许多地方的Web上找到(查找UTF-16编码)。算法就在那里。简而言之,取代码点,减去10000十六进制,然后将差值的20位展开如下:110110xxxxxxxxxx110111xxxxxxxxxx

但是,如果您的语言很好地支持代码点,那么您应该直接使用代码点,而不是担心这种转换。您还可以将表情符号复制粘贴到一个好的文本编辑器中(确保编码设置为UTF-8)。如果您需要使用代理,最好是查找Unicode图表,该图表向您展示了一种称为"UTF-16编码"的编码。

这篇关于将表情符号从十六进制代码转换为Unicode的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆