将UTF8文本编码为Unicode C#[重复]

问题描述 投票:0回答:2

如何将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文本上显示“привет”

请提供一些建议,谢谢

c# decode encode
2个回答
1
投票
   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?


-1
投票

您需要明确说明用于转换为字节的编码类型(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方法返回相同的字符串时。

© www.soinside.com 2019 - 2024. All rights reserved.