简体   繁体   中英

Unicode Conversion in c#

i am trying to assign Unicode on string but it return "Привет" string as "Привет" But i need "Привет", i am converting by following function .

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

what can i do for solve this problem to return "Привет".

П is Unicode character 0x041F , and its UTF-8 encoding is 0xD0 0x9F resulting in П .

Since the function only returns the input parameter, as commenters already discussed, I conclude that your original input string is actually in UTF-8, and you want to convert it into native .Net string.

Where does the original string come from?

Instead of reading the input into a C# string , change your code to read a byte[] , and then call Encoding.UTF8.GetString(inputUtf8ByteArray) .

I Tried the following code below and these were my results:

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

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

Output of str1=鿐胑룐닐뗐苑

Output of str2=Привет

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM