我从字节数组中提取字符串。该字符串是一个sql脚本。
String sql = System.Text.Encoding.GetEncoding(1200).GetString(script);
第一个角色是垃圾(预览中的方框)。由于整个脚本失败了。知道为什么会这样吗?
我不想专门删除第一个字符。更有兴趣知道为什么以及如何避免这种情况。
答案 0 :(得分:2)
第一个字符可能是Byte Order Marks (BOM)。
您可以使用StreamReader自动检测任何BOM并选择适当的编码:
byte[] script;
string sql;
using (var reader = new StreamReader(new MemoryStream(script), true))
{ // ↑
sql = reader.ReadToEnd(); // detectEncodingFromByteOrderMarks
}