首页 > 解决方案 > SVN 使用什么文件编码?

问题描述

我们在 svn 中归档,我们使用 web 服务以字节格式提取这些文件。

我正试图让我们从 S3 存储桶中获取这些文件。

当我们从 svn 中提取文件时,它以字节形式出现,我们稍后使用 LZ4 解码。像这样:

Encoding.UTF8.GetString(LZHelper.ReadFromLZ4Stream(bytes returned by svn))

但是,我们存储桶的文件只是上传而没有压缩或任何东西。我提取了字节并尝试对它们进行编码,以便它们与 svn 版本匹配。我认为它将是 UTF8,因为这是上面使用的解码,但它似乎不匹配。

在这个函数中,没有一个压缩字节数组与 svn 回复匹配。

   public byte[] GetFile(string pstrPath)
        {
            AmazonS3Client s3Client = new AmazonS3Client("blah", "blah blah", Amazon.RegionEndpoint.whoknows);
            GetObjectRequest gRequest = new GetObjectRequest();
            gRequest.BucketName = "test";
            gRequest.Key = "the file path and name";
            string contents;
            GetObjectResponse gresponse = s3Client.GetObjectAsync(gRequest).Result;
            byte[] compressedBytes;
            using (MemoryStream memoryStream = new MemoryStream())
            {
                gresponse.ResponseStream.CopyTo(memoryStream);
                compressedBytes = memoryStream.ToArray();

            }

            byte[] compressedBytes1 = LZ4Codec.Wrap(Encoding.Default.GetBytes(contents));
            byte[] compressedBytes2 = LZ4Codec.Wrap(Encoding.UTF8.GetBytes(contents));
            byte[] compressedBytes3 = LZ4Codec.Wrap(Encoding.UTF7.GetBytes(contents));
            byte[] compressedBytes4 = LZ4Codec.Wrap(Encoding.UTF32.GetBytes(contents));
            byte[] compressedBytes5 = LZ4Codec.Wrap(Encoding.BigEndianUnicode.GetBytes(contents));
            byte[] compressedBytes6 = LZ4Codec.Wrap(Encoding.ASCII.GetBytes(contents));
            
            byte[] svnres = Channel.GetFile(pstrPath);

            return Channel.GetFile(pstrPath);
        }

有没有办法找出这些文件使用的编码?理想情况下,我会将文件上传更改为这种编码,但除非我弄清楚 svn 使用的是什么编码,否则我不能这样做。

标签: c#svntortoisesvn

解决方案


推荐阅读