2014-01-05 43 views
3

在我的代碼隱藏中,我試圖返回unicode字符的十六進制代碼。在代碼隱藏中使用Unicode字符(U + 1FXYZ)時無法正確輸出

我試圖輸出Segoe UI符號字體的這些字符中的任何一個:http://www.istartedsomething.com/uploads/emojisegoe.html。例如,「U + 1F60A」。

如果我通過我的XAML做到這一點,如:

FontFamily="Segoe UI Symbol" Text="😊" 

然後正常工作。

但是,如果我綁定的值通過的.cs轉換器類找回它,正確的字符不會出現:

FontFamily="Segoe UI Symbol" Text="{Binding Pivot7Days.EmojiWeekendSummary, Converter={StaticResource EmoticonConverter}}" 

Converter類:

switch (input) 
{ 
    case "happy": 
     return "\u1F60A"; 
    case "sad": 
     return "\u1F60B"; 
    default: 
     return "\u1F610"; 
} 

我得到一個完全不同的字符後跟返回字符串中的最後一個字符,如'A','B'或'0'。例如,當我可以看到一個舌頭(U + 1F60B)一張臉,我反而得到如下:

enter image description here

我使用不正確的轉義序列在我後面的代碼?

回答

5

超出U + FFFF的字符不能直接寫成\u....文字(如果您嘗試這樣做,只使用前四個十六進制數字,並且您得到一個錯誤的字符),但作爲替代對或更容易使用八例如,數字U + 1F60A的'\U0001F60A'

相關問題