Reputation: 3
Example:
"Заполни профиль"
I try
var latinString = "Заполни профиль"; // år
Encoding latinEncoding = Encoding.GetEncoding("iso-8859-1");
Encoding utf8Encoding = Encoding.GetEncoding("WINDOWS-1252");
byte[] latinBytes = latinEncoding.GetBytes(latinString);
byte[] utf8Bytes = Encoding.Convert(latinEncoding, utf8Encoding, latinBytes);
var utf8String = Encoding.UTF8.GetString(utf8Bytes);
but it doesn't work:
�?аполни п�?о�?ил�?
this is russian text, help plz
Upvotes: 0
Views: 110
Reputation: 186718
It seems, latinString
is UTF-8 string in Win-1252 encoding. Let's return it back into UTF-8:
// Uncomment in case of .Net Core or .Net 5
// Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var latinString = "Заполни профиль";
string result = Encoding.UTF8.GetString(
Encoding.GetEncoding(1252).GetBytes(latinString));
// Let's have a look
Console.Write(result);
Outcome:
Заполни профиль
Upvotes: 2