123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using System;
- using System.Text;
- namespace CueSplitter.Helpers
- {
- internal static class TextHelper
- {
- static TextHelper()
- {
- try
- {
- Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
- }
- catch
- {
- //EAT ERR
- }
- }
- private static Encoding TestCodePage(Encoding testCode, byte[] byteArray)
- {
- try
- {
- var encoding = Encoding.GetEncoding(testCode.CodePage, EncoderFallback.ExceptionFallback, DecoderFallback.ExceptionFallback);
- var a = encoding.GetCharCount(byteArray);
- return testCode;
- }
- catch (Exception e)
- {
- return null;
- }
- }
- public static Encoding DetectCodePage(byte[] contents)
- {
- if (contents == null || contents.Length == 0)
- {
- return Encoding.Default;
- }
- return TestCodePage(Encoding.UTF8, contents)
- ?? TestCodePage(Encoding.GetEncoding("SHIFT-JIS"), contents)
- ?? TestCodePage(Encoding.GetEncoding("GB2312"), contents)
- ?? TestCodePage(Encoding.GetEncoding("EUC-KR"), contents)
- ?? TestCodePage(Encoding.Unicode, contents)
- ?? TestCodePage(Encoding.BigEndianUnicode, contents)
- ?? TestCodePage(Encoding.ASCII, contents)
- ;
- }
- }
- }
|