d1plomat
d1plomat

Reputation: 3

Can't decode text

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

Answers (1)

Dmitrii Bychenko
Dmitrii Bychenko

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

Related Questions