【发布时间】:2014-03-10 17:07:08
【问题描述】:
如何向 StringBuilder 添加字节顺序标记? (我必须将一个字符串传递给另一个方法,它将它保存为一个文件,但我不能修改那个方法)。
我试过了:
var sb = new StringBuilder();
sb.Append('\xEF');
sb.Append('\xBB');
sb.Append('\xBF');
但是当我用十六进制编辑器查看它时,它会添加以下序列:
C3 AF C2 BB C2 BF
字符串很大,最好不用来回转换为字节数组。
编辑: 在 cmets 提问后进行澄清。我必须将字符串传递给另一个方法,该方法接受一个字符串并在 Azure Blob 存储上创建一个文件。我无法修改其他方法。
【问题讨论】:
-
为什么?在写入文件之前不需要字节顺序标记...您看到的问题是因为字节顺序标记不是 Unicode。
-
我必须将字符串传递给另一个方法,该方法接受一个字符串并在 Azure Blob 存储上创建一个文件。
标签: c# utf-8 stringbuilder byte-order-mark