将 UTF8 文本编码为 Unicode C#

Encode UTF8 text to Unicode C#

如何将 UTF8 文本编码为 Unicode?

string text_txt = "пÑивеÑ";    
byte[] bytesUtf8 = Encoding.Default.GetBytes(text_txt);
text_txt = Encoding.UTF8.GetString(bytesUtf8);

问题输出:п��?иве�

我需要输出:привет

使用该站点:https://www.branah.com/unicode-converter在“UTF-8 text (Example: a 中 Я)”到“пÑивеє中输入文本,它将以 Unicode 文本显示“привет”

请多指教谢谢

您需要明确说明用于转换为字节的编码类型,(Syste.Text.Encoding.UTF8.GetBytes)。例如:

using System;
using System.Text;

public class Program {
    public static void Main() {
        string text_txt = "пÑивеÑ";

        byte[] bytesUtf8 = Encoding.UTF8.GetBytes(text_txt);
        text_txt = Encoding.UTF8.GetString(bytesUtf8);

        Console.WriteLine(text_txt);
    }
}

这种方式使用 UTF8 编码和解码字符串以相同的方式,并且当您确保返回相同的字符串时来自 GetString 方法。

   byte[] utf8Bytes = new byte[text_txt.Length];
                for (int i = 0; i < text_txt.Length; ++i)
                {
                    //Debug.Assert( 0 <= utf8String[i] && utf8String[i] <= 255, "the char must be in byte's range");
                    utf8Bytes[i] = (byte)text_txt[i];
                }
                text_txt= Encoding.UTF8.GetString(utf8Bytes, 0, text_txt.Length);

来自答案:How to convert a UTF-8 string into Unicode?

嗯,你可能是这个意思:

// Forward: given in UTF-8 represented in WIN-1252

  byte[] data = Encoding.UTF8.GetBytes("привет");
  string text = Encoding.GetEncoding(1252).GetString(data);

// Reverse: given in WIN-1252 represented in UTF-8

  byte[] reversedData = Encoding.GetEncoding(1252).GetBytes("привет");
  string reversedText = Encoding.UTF8.GetString(reversedData);

  Console.WriteLine($"{string.Join(" ", data)} <=> {text}");
  Console.WriteLine(reversedText);

结果:

208 191 209 128 208 184 208 178 208 181 209 130 <=> привет
привет

请注意,您省略了 , 个字符:

 Ð¿Ñ Ð¸Ð²ÐµÑ  - actual string
 привет - should be