如何向 StringBuilder 添加字节顺序标记? (我必须将一个字符串传递给另一个方法,该方法会将其保存为文件,但我无法修改该方法)。
我试过这个:
var sb = new StringBuilder();
sb.Append('\xEF');
sb.Append('\xBB');
sb.Append('\xBF');
但是当我用十六进制编辑器查看它时,它添加了以下序列:
C3 AF C2 BB C2 BF
字符串很大,所以最好不要来回转换为字节数组。
编辑: 在评论中提出问题后进行澄清。我必须将字符串传递给另一个方法,该方法接受一个字符串并在 Azure Blob 存储上创建一个文件。我无法修改其他方法。
最佳答案
两种选择:
- 根本不要在您的文本中包含字节顺序标记...而是使用一种会自动包含它的编码
将它作为一个字符包含在您的
StringBuilder
中:sb.Append('\uFEFF'); // U+FEFF is the byte-order mark character
就我个人而言,我通常会选择第一种方法,但“我无法修改该方法”表明它可能不适合您的情况。
关于c# - 通过 StringBuilder 为字符串添加字节顺序标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22306645/