簡體   English   中英

c#中的Unicode轉換

[英]Unicode Conversion in c#

我試圖在字符串上分配Unicode但它返回“Привет”字符串為“ПривÐμÑ”,但我需要“Привет”,我通過以下函數進行轉換。

public string Convert(string str)
{
    byte[] utf8Bytes = Encoding.UTF8.GetBytes(str);
    str = Encoding.UTF8.GetString(utf8Bytes);
    return str;
}

我能做些什么來解決這個問題才能返回“Привет”。

П是Unicode字符0x041F ,其UTF-8編碼是0xD0 0x9F導致П

由於函數只返回輸入參數,正如已經討論過的評論者所說,我得出的結論是你的原始輸入字符串實際上是UTF-8,並且你想將它轉換為原生的.Net字符串。

原始字符串來自哪里?

不要將輸入讀入C# string ,而是將代碼更改為讀取byte[] ,然后調用Encoding.UTF8.GetString(inputUtf8ByteArray)

我嘗試下面的代碼,這些是我的結果:

        string test="Привет";
        byte[] utf8Bytes = Encoding.UTF8.GetBytes(test);

        String str1 = Encoding.Unicode.GetString(utf8Bytes);
        String str2 = Encoding.UTF8.GetString(utf8Bytes);

輸出str1 =鿐胑룐닐뗐苑

輸出str2 =Привет

暫無
暫無

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

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