我有下面的代码,奇怪的是它继续返回相同的值(即使filename
)不同,如果我在同一个请求中多次调用它。
我刚刚完成代码,甚至stringbytes
完全相同(即GetBytes(string))返回相同的值。
public static string Base64EncodeString(string filename)
{
var stringbytes = System.Text.Encoding.Default.GetBytes(filename);
return Convert.ToBase64String(stringbytes);
}
答案 0 :(得分:5)
我怀疑你没有看到你认为你所看到的。如果您使用不同的filename值调用它,将不会返回相同的值...除非您使用Encoding.Default
不支持的字符。 (我不建议使用Encoding.Default
,除非确实需要特定于平台的编码。)
答案 1 :(得分:1)
您的代码看起来是正确的。如果它不是Jon Skeet建议的编码问题,我猜你在某处有一个静态fileName和/或stringbytes变量,并且发布的代码与原始代码不是100%相同。
答案 2 :(得分:0)
您是否检查了要加载的文件?您可能只是复制了要打开的文件,为其指定了不同的名称,并且没有修改内容。