C# SVN使用什么文件编码?
我们使用svn文件,并使用webservice以字节格式提取这些文件 我试图让我们从S3存储桶中获取这些文件 当我们从svn中提取文件时,它以字节的形式出现,我们稍后使用LZ4进行解码。 像这样:C# SVN使用什么文件编码?,c#,svn,tortoisesvn,C#,Svn,Tortoisesvn,我们使用svn文件,并使用webservice以字节格式提取这些文件 我试图让我们从S3存储桶中获取这些文件 当我们从svn中提取文件时,它以字节的形式出现,我们稍后使用LZ4进行解码。 像这样: Encoding.UTF8.GetString(LZHelper.ReadFromLZ4Stream(bytes returned by svn)) 然而,我们的bucket文件只是在没有压缩或任何东西的情况下上传的。我提取了字节并尝试对它们进行编码,以便它们与svn版本匹配。我假设它将是UTF8,
Encoding.UTF8.GetString(LZHelper.ReadFromLZ4Stream(bytes returned by svn))
然而,我们的bucket文件只是在没有压缩或任何东西的情况下上传的。我提取了字节并尝试对它们进行编码,以便它们与svn版本匹配。我假设它将是UTF8,因为这是上面使用的解码,但它似乎不匹配
在此函数中,没有一个compressedByte数组与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使用的是什么编码,否则我无法这样做。数据是二进制的吗?使用二进制数据编码将损坏数据。您可以使用二进制读取器读取字节[]。@jdweng,谢谢。我尝试将其更改为通过二进制读取器读入,但结果相同,但与svn字节流不同:-(