2

filename我有下面的代码,奇怪的是,如果我在同一个请求中多次调用它,它会继续返回相同的值(即使)是不同的。

我刚刚单步执行了代码,甚至stringbytes完全相同(即 GetBytes(string))返回相同的值。

    public static string Base64EncodeString(string filename)
    {
        var stringbytes = System.Text.Encoding.Default.GetBytes(filename);
        return Convert.ToBase64String(stringbytes);
    }
4

3 回答 3

5

我怀疑你没有看到你认为你看到的东西。如果您使用不同的文件名值调用该方法,该方法将不会返回相同的值...除非您使用的字符不受Encoding.Default. Encoding.Default(除非您真的想要特定于平台的编码,否则我不建议使用。)

于 2010-12-02T17:28:12.447 回答
1

您的代码看起来正确。如果这不是 Jon Skeet 建议的编码问题,我猜你在某处有一个静态文件名和/或 stringbytes 变量,并且发布的代码与原始代码不是 100% 相同。

于 2010-12-02T17:46:59.543 回答
0

您是否检查了正在加载的文件。您可能只是复制了您正在打开的文件,给它起了一个不同的名称并且没有修改内容。

于 2010-12-02T18:01:24.907 回答