我有文件名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是额外的 文本。
有人能帮助我吗?
提前致谢。
答案 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);