如何将UTF8字符串转换为UTF8字节数组?

33

我该如何将字符串转换为utf8字节数组?我有以下示例代码:

这段代码可以正常工作:

StreamWriter file = new StreamWriter(file1, false, Encoding.UTF8);
file.WriteLine(utf8string);
file.Close();

这个不正确,文件是以ASCII格式保存的:

byte[] bytes = System.Text.UTF8Encoding.UTF8.GetBytes(utf8string);
FileStream fs = new FileStream(file2, FileMode.CreateNew);
fs.Write(bytes, 0, bytes.Length);
fs.Close();

我想获取这个函数返回的字节数组:

System.IO.File.ReadAllBytes(path_to_file)

因为这样可以正常工作:

byte[] datab = File.ReadAllBytes(file1);
FileStream fs2 = new FileStream(file3, FileMode.CreateNew);
fs2.Write(datab, 0, datab.Length);
fs2.Close();

你为什么认为你的第二个例子不起作用? - Sjoerd
刚刚有一个非常相似的问题被问到了:https://dev59.com/NWbWa4cB1Zd3GeqPUkD3 - Davin Tryon
1
这个不是回答了你的问题吗 byte[] bytes = System.Text.UTF8Encoding.UTF8.GetBytes(utf8string); - Chris Moutray
1个回答

87

可以再次使用其他选项:

string value = "\u00C4 \uD802\u0033 \u00AE";    
byte[] bytes= System.Text.Encoding.UTF8.GetBytes(value);

可以在Encoding.UTF8 Property上查看更多信息。


1
生成的字节数组是否包含尾随的NULL字符? - André Puel
仅当输入数组只有一个元素时,才进行一对一复制。 - David A. Gray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接