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.