c# - 如何在运行时将单个 Unicode 代码点转换为字符串?
问题描述
假设我有以下代码点:(u1F64A
这是表情符号)。
这可以写成:
string monkey = "\u1F64A";
我如何在运行时将已知的代码点(作为整数)转换为字符串?
int codepoint = 0xF64A;
string monkey = //?
解决方案
当我想在 C# 中使用 Emojis 时,我构建了一个辅助类,如下所示:
public class Emoji
{
readonly int[] codes;
public Emoji(int[] codes)
{
this.codes = codes;
}
public Emoji(int code)
{
codes = new int[] { code };
}
public override string ToString()
{
if (codes == null)
return string.Empty;
var sb = new StringBuilder(codes.Length);
foreach (var code in codes)
sb.Append(Char.ConvertFromUtf32(code));
return sb.ToString();
}
}
这样,我就可以做到string monkeyEmoji = new Emoji(0xF64A);
它还支持具有多个代码点的表情符号(是的,那些存在并且很痛苦)
推荐阅读
- adobe - 如何在 CQ5 AEM 中的 dialog.xml 上添加简单标签?
- php - 获取/读取 laravel 5.8 存储非公共文件夹文件以查看?
- node.js - Appium - webdriverio init 不是一个函数
- dart - 什么是颤振中的android ems等价物?
- c - 复制文件并向后写入文件信息
- javascript - 我的 .sh 脚本语法错误:文件意外结束
- apache - .htaccess RewriteRule 行为与现有子目录
- node.js - 如何在 Node JS 的 Google Cloud Speech 库中启用扬声器分类?
- groovy - 是否可以在 Groovy 中获取变量的名称?
- reactjs - 为什么 react-google-maps 渲染一个 Circle 组件两次?