mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[ZipFileEntry] Use different code page than ASCII
Most external zip utilities will use a random codepage to encode non-ASCII characters. I arbitrarily chose the western european code page because it is fully compatible with ASCII as well as seemingly being the default encoding for archivers like 7-zip
This commit is contained in:
@@ -77,12 +77,12 @@ namespace ROMVault2.SupportedFiles.Zip
|
|||||||
}
|
}
|
||||||
public string ExtraField
|
public string ExtraField
|
||||||
{
|
{
|
||||||
get { return Encoding.ASCII.GetString(_extraField); }
|
get { return Encoding.GetEncoding(858).GetString(_extraField); }
|
||||||
set { _extraField = Style.StringToByteArray(Style.ConvertAsciiToHex(value)); }
|
set { _extraField = Style.StringToByteArray(Style.ConvertAsciiToHex(value)); }
|
||||||
}
|
}
|
||||||
public string Comment
|
public string Comment
|
||||||
{
|
{
|
||||||
get { return Encoding.ASCII.GetString(_comment); }
|
get { return Encoding.GetEncoding(858).GetString(_comment); }
|
||||||
set { _comment = Style.StringToByteArray(Style.ConvertAsciiToHex(value)); }
|
set { _comment = Style.StringToByteArray(Style.ConvertAsciiToHex(value)); }
|
||||||
}
|
}
|
||||||
public ulong RelativeOffset
|
public ulong RelativeOffset
|
||||||
@@ -196,7 +196,7 @@ namespace ROMVault2.SupportedFiles.Zip
|
|||||||
_relativeOffset = br.ReadUInt32();
|
_relativeOffset = br.ReadUInt32();
|
||||||
byte[] fileNameBytes = br.ReadBytes(fileNameLength);
|
byte[] fileNameBytes = br.ReadBytes(fileNameLength);
|
||||||
_fileName = ((_generalPurposeBitFlag & GeneralPurposeBitFlag.LanguageEncodingFlag) == 0
|
_fileName = ((_generalPurposeBitFlag & GeneralPurposeBitFlag.LanguageEncodingFlag) == 0
|
||||||
? Encoding.ASCII.GetString(fileNameBytes)
|
? Encoding.GetEncoding(858).GetString(fileNameBytes)
|
||||||
: Encoding.UTF8.GetString(fileNameBytes, 0, fileNameLength));
|
: Encoding.UTF8.GetString(fileNameBytes, 0, fileNameLength));
|
||||||
_extraField = br.ReadBytes(extraFieldLength);
|
_extraField = br.ReadBytes(extraFieldLength);
|
||||||
_comment = br.ReadBytes(fileCommentLength);
|
_comment = br.ReadBytes(fileCommentLength);
|
||||||
@@ -340,7 +340,7 @@ namespace ROMVault2.SupportedFiles.Zip
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fileNameBytes = Encoding.ASCII.GetBytes(_fileName);
|
fileNameBytes = Encoding.GetEncoding(858).GetBytes(_fileName);
|
||||||
}
|
}
|
||||||
ushort fileNameLength = (ushort)fileNameBytes.Length;
|
ushort fileNameLength = (ushort)fileNameBytes.Length;
|
||||||
|
|
||||||
@@ -457,7 +457,7 @@ namespace ROMVault2.SupportedFiles.Zip
|
|||||||
|
|
||||||
byte[] fileNameBytes = br.ReadBytes(fileNameLength);
|
byte[] fileNameBytes = br.ReadBytes(fileNameLength);
|
||||||
string tempFileName = ((_generalPurposeBitFlag & GeneralPurposeBitFlag.LanguageEncodingFlag) == 0
|
string tempFileName = ((_generalPurposeBitFlag & GeneralPurposeBitFlag.LanguageEncodingFlag) == 0
|
||||||
? Encoding.ASCII.GetString(fileNameBytes)
|
? Encoding.GetEncoding(858).GetString(fileNameBytes)
|
||||||
: Encoding.UTF8.GetString(fileNameBytes, 0, fileNameLength));
|
: Encoding.UTF8.GetString(fileNameBytes, 0, fileNameLength));
|
||||||
|
|
||||||
byte[] extraField = br.ReadBytes(extraFieldLength);
|
byte[] extraField = br.ReadBytes(extraFieldLength);
|
||||||
@@ -618,7 +618,7 @@ namespace ROMVault2.SupportedFiles.Zip
|
|||||||
|
|
||||||
byte[] fileNameBytes = br.ReadBytes(fileNameLength);
|
byte[] fileNameBytes = br.ReadBytes(fileNameLength);
|
||||||
_fileName = ((_generalPurposeBitFlag & GeneralPurposeBitFlag.LanguageEncodingFlag) == 0
|
_fileName = ((_generalPurposeBitFlag & GeneralPurposeBitFlag.LanguageEncodingFlag) == 0
|
||||||
? Encoding.ASCII.GetString(fileNameBytes)
|
? Encoding.GetEncoding(858).GetString(fileNameBytes)
|
||||||
: Encoding.UTF8.GetString(fileNameBytes, 0, fileNameLength));
|
: Encoding.UTF8.GetString(fileNameBytes, 0, fileNameLength));
|
||||||
|
|
||||||
byte[] extraField = br.ReadBytes(extraFieldLength);
|
byte[] extraField = br.ReadBytes(extraFieldLength);
|
||||||
@@ -715,7 +715,7 @@ namespace ROMVault2.SupportedFiles.Zip
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fileNameBytes = Encoding.ASCII.GetBytes(_fileName);
|
fileNameBytes = Encoding.GetEncoding(858).GetBytes(_fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the version needed to extract according to if it's Zip64
|
// Set the version needed to extract according to if it's Zip64
|
||||||
|
|||||||
Reference in New Issue
Block a user