在 C# 中使用 Unicode 值

Using Unicode Values in C#

我在我的应用程序中使用 unicode 时遇到了这种奇怪的情况。我有一个随机 unicode 列表,然后我将其随机分配给一个对象。

var icons = new List<string> { "\uf022", "\uf039", "\uf02b", "\uf1b2", "\uf07b" };

当我调试对象时,Object.Icon 属性 显示 ".",这是 unicode 的正确值。当我在 XAML 页面上显示 unicode 时,会显示正确的图标。

因此,当我完成这项工作时,我想将 unicode 值移动到数据库中,而不是使其随机化。但是现在当我调试对象时 Object.Icon 属性 显示“\unicodevalue" 即“\uf022”。

在 XAML 页面上显示此值时,它显示为文本值 \uf022 而不是图标。

图标列表中的字符串与数据库中的字符串值有什么区别?

数据库中的 unicode 序列已经转义了反斜杠,所以 "\uf042" 实际上总共有 6 个字符:反斜杠、"u"、"f"、“0”、“4”和“2”。

但是,就 C# 而言,代码中的 unicode 序列实际上只是一个字符,它们是 unicode 代码点的文字。

要将数据库中的值更改为单独的 Unicode 代码点,请尝试 Char.ConvertFromUtf32 方法。