簡體   English   中英

在代碼隱藏中使用時,Unicode字符(U + 1FXYZ)無法正確輸出

[英]Unicode character (U+1FXYZ) not outputting correctly when used in code-behind

在我的代碼隱藏中,我正在嘗試返回unicode字符的十六進制代碼。

我正在嘗試輸出Segoe UI Symbol字體中的任何一個字符: 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}}"

轉換器類:

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

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

在此輸入圖像描述

我在后面的代碼中使用了不正確的轉義序列嗎?

超出U + FFFF的字符不能直接寫成\\u....文字(如果你試過,只使用前四個十六進制數字,你得到一個錯誤的字符)但是作為代理對,或者更容易,使用8位\\U字面,例如U + 1F60A的'\\U0001F60A'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM