在C#中使用Unicode值

时间:2018-06-14 10:30:55

标签: c# unicode unicode-escapes

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

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

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

Unicode from application list

因此,当我开始工作时,我想将unicode值移动到数据库中,而不是让它随机。但是现在当我调试对象时,Object.Icon属性显示&#34; \\unicodevalue",即&#34; \ uf022&#34;。

enter image description here

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

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

1 个答案:

答案 0 :(得分:1)

数据库中的unicode序列有反斜杠转义,所以"\\uf042"实际上是6个字符:反斜杠,&#34; u&#34;,&#34; f&#34;,&#34 ; 0&#34;,&#34; 4&#34;和&#34; 2&#34;。

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

要从数据库中的值更改为单个unicode代码点,请尝试使用Char.ConvertFromUtf32方法。