fli*_*ubt 9 c# resources encoding visual-studio-2008
我有一个SQL文件作为嵌入式资源添加到我的VS.NET 2008项目中.每当我使用以下代码读取文件的内容时,返回的字符串总是以三个垃圾字符开头,然后是我期望的文本.我认为这与我正在使用的Encoding.Default有关,但这只是猜测.为什么这个文字会一直显示出来?我应该只删除前三个字符还是有更明智的方法?
public string GetUpdateRestoreSchemaScript()
{
var type = GetType();
var a = Assembly.GetAssembly(type);
var script = "UpdateRestoreSchema.sql";
var resourceName = String.Concat(type.Namespace, ".", script);
using(Stream stream = a.GetManifestResourceStream(resourceName))
{
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
// UPDATE: Should be Encoding.UTF8
return Encoding.Default.GetString(buffer);
}
}
Run Code Online (Sandbox Code Playgroud)
更新: 我现在知道,如果我只是更改最后一行以返回UTF-8编码的字符串,我的代码将按预期工作.这个嵌入式文件总是如此,但它总是如此吗?有没有办法测试任何缓冲区来确定其编码?