C# UtF-8提供了德语字符的额外字符串

C# UtF-8提供了德语字符的额外字符串,c#,utf-8,C#,Utf 8,我有文件名testtäöü223ÄäÜ。我想用c#在UTF-8中进行转换 string test=“testtäöüß”; var字节=新列表(test.Length); foreach(测试中的var c) 字节。添加((字节)c); var retValue=Encoding.UTF8.GetString(bytes.ToArray()); 运行此代码后,我的输出是:“testt mit Umlauteäöü?x”。麻省理工学院Umlaute是额外的 文本 有人能帮我吗 提前谢谢。你不能那

我有文件名testtäöü223ÄäÜ。我想用c#在UTF-8中进行转换

string test=“testtäöüß”;
var字节=新列表(test.Length);
foreach(测试中的var c)
字节。添加((字节)c);
var retValue=Encoding.UTF8.GetString(bytes.ToArray());
运行此代码后,我的输出是:“testt mit Umlauteäöü?x”。麻省理工学院Umlaute是额外的 文本

有人能帮我吗


提前谢谢。

你不能那样做。不能将UTF-8字符强制转换为字节。UTF-8对于ASCII以外的任何内容都至少需要两个字节,但字节不能存储此内容

使用

byte[] bytes = System.Text.Encoding.UTF8.GetBytes (test);

我想,曾的意思是

摘自:


它是文件名还是字符串值?你是用“测试”还是“测试”?如果我按原样运行代码,
retValue
is
testt����。有些事告诉我,那不是你的实际代码。。。
byte[] bytes = System.Text.Encoding.UTF8.GetBytes (test);
        System.Text.Encoding utf_8 = System.Text.Encoding.UTF8;

        // This is our Unicode string:
        string s_unicode = "abcéabc";

        // Convert a string to utf-8 bytes.
        byte[] utf8Bytes = System.Text.Encoding.UTF8.GetBytes(s_unicode);

        // Convert utf-8 bytes to a string.
        string s_unicode2 = System.Text.Encoding.UTF8.GetString(utf8Bytes);

        MessageBox.Show(s_unicode2);