首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取emoticon (chars) unicode代码

获取emoticon (chars) unicode代码
EN

Stack Overflow用户
提问于 2016-07-24 17:40:14
回答 2查看 2.4K关注 0票数 1

我需要得到像1F600或128512格式的表情符号代码。现在它只是我绳子上的一个符号。

我发现在Uniicode编码中描述的表情符号,但CharUnicodeInfo.GetNumericValue似乎不起作用。

我该怎么做?

好的

代码语言:javascript
运行
复制
var q = CharUnicodeInfo.GetNumericValue(text[0]);

其中,文本持有emoticon (在调试视图中,它只是一幅图片)返回-1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-24 18:20:17

你说

text[0]持有表情符号

这不是真的。

text[0]持有第一个CharChar是一个16位代码单元,但是表情符号不适合16位代码单元。它们由两个组合字符表示。

第一个组合字符本身不是一个有效的代码点,因此试图获取代码点值返回-1;一个无效的代码点。

那你是怎么得到代码点的?

在C#中返回字符代码点解释了如何获得所有代码点的列表。

如果只想获得第一个代码点,可以直接使用Char.ConvertToUtf32

代码语言:javascript
运行
复制
int codepoint = Char.ConvertToUtf32(text, 0)
票数 3
EN

Stack Overflow用户

发布于 2016-07-24 18:01:40

CharUnicodeInfo.GetNumericValue为您返回-1的原因是因为要传递的字符不是数字字符。你需要看一下文件。

该块中的表情字符的Unicode值为32位值。例如,0x1F600。因此,它将是一个由两个16位值组成的32位值。因此,如果字符串包含该表情字符,则字符串的长度为2,两个char值为0x0001和0xF600。将char值转换为short,并将它们视为十六进制。例如:

代码语言:javascript
运行
复制
short c1 = (short)text[0];
short c2 = (short)text[1];

在调试器中,将c1c2视为十六进制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38554892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档