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

时间:2013-09-02 05:20:39

标签: c# utf-8

我有文件名testtäöüßÄÖÜ。我想用c#转换为UTF-8。

string test ="testtäöüß";
var bytes = new List<byte>(test.Length);
        foreach (var c in test)
            bytes.Add((byte)c);
        var retValue = Encoding.UTF8.GetString(bytes.ToArray());

运行此代码后,我的输出是:'testt mitUmlauteäöü?x。 mit Umlaute是额外的 文本。

有人能帮助我吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

你做不到。您不能将UTF-8字符转换为字节。 UTF-8除ASCII以外的任何东西至少需要两个字节,字节不能存储这个

不使用创建列表,而是使用

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

答案 1 :(得分:1)

我认为,Tseng意味着以下

取自:http://www.chilkatsoft.com/p/p_320.asp

        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);