Improve Pac pewview dialog

This commit is contained in:
niksedk 2019-08-18 18:17:04 +02:00
parent e845fa42a3
commit fe780666f1
2 changed files with 33 additions and 5 deletions

View File

@ -37,10 +37,10 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
public const int CodePageKorean = 9;
public const int CodePageJapanese = 10;
private const int EncodingChineseSimplified = 936;
private const int EncodingChineseTraditional = 950;
private const int EncodingKorean = 949;
private const int EncodingJapanese = 932;
public const int EncodingChineseSimplified = 936;
public const int EncodingChineseTraditional = 950;
public const int EncodingKorean = 949;
public const int EncodingJapanese = 932;
/// <summary>
/// Contains Swedish, Danish, German, Spanish, and French letters

View File

@ -55,8 +55,36 @@ namespace Nikse.SubtitleEdit.Forms
Encoding encoding = Pac.GetEncoding(CodePageIndex);
const int feIndex = 0;
const int endDelimiter = 0x00;
int index;
var indexOfW16 = Encoding.ASCII.GetString(_previewBuffer).IndexOf("W16", StringComparison.Ordinal);
if (indexOfW16 > 0 && indexOfW16 < _previewBuffer.Length - 5)
{
index = indexOfW16 + 4;
if (CodePageIndex == Pac.CodePageChineseSimplified)
{
textBoxPreview.Text = Encoding.GetEncoding(Pac.EncodingChineseSimplified).GetString(_previewBuffer, index, _previewBuffer.Length - index);
return;
}
else if (CodePageIndex == Pac.CodePageChineseTraditional)
{
textBoxPreview.Text = Encoding.GetEncoding(Pac.EncodingChineseTraditional).GetString(_previewBuffer, index, _previewBuffer.Length - index);
return;
}
else if (CodePageIndex == Pac.CodePageKorean)
{
textBoxPreview.Text = Encoding.GetEncoding(Pac.EncodingKorean).GetString(_previewBuffer, index, _previewBuffer.Length - index);
return;
}
else if (CodePageIndex == Pac.CodePageJapanese)
{
textBoxPreview.Text = Encoding.GetEncoding(Pac.EncodingJapanese).GetString(_previewBuffer, index, _previewBuffer.Length - index);
return;
}
}
var sb = new StringBuilder();
int index = feIndex + 3;
index = feIndex + 3;
while (index < _previewBuffer.Length && _previewBuffer[index] != endDelimiter)
{
if (_previewBuffer[index] == 0xFE)