Hnx8.ReadJEnc ReadJEnc 文字コード種類定義(Rev.20170821) UTF8(BOMあり) UTF32(BOMありLittleEndian) UTF32(BOMありBigEndian) UTF16(BOMありLittleEndian)Windows標準のUnicode UTF16(BOMありBigEndian) UTF16(BOM無しLittleEndian) UTF16(BOM無しBigEndian) UTF8(BOM無し) AsciiデコードはUTF8Encodingを流用。Bom情報は転記しない 1252 ISO8859 西ヨーロッパ言語 50221 iso-2022-jp 日本語 (JIS-Allow 1 byte Kana) ※MS版 50222 iso-2022-jp 日本語 (JIS-Allow 1 byte Kana - SO/SI)SO/SIによるカナシフトのみのファイルもCP50222とみなす 50221(MS版JIS) + 20932(JIS補助漢字を無理やりデコード)JIS補助漢字はデコードのみ対応、エンコードは未対応 JISのように見えるがデコード不能な箇所あり、実質非テキストファイル 50225 iso-2022-kr 韓国語(ISO)SO/SIカナシフトファイルの判定ロジックに流れ込まないようにするため定義 932 shift_jis 日本語 (シフト JIS) ※MS独自 EUC補助漢字(0x8F)あり ※MS-CP20932を利用し強引にデコードするエンコードするとファイルが壊れるので注意 51932 euc-jp 日本語 (EUC) ※MS版 950 big5 繁体字中国語 (BIG5) 20000 x-Chinese-CNS 繁体字中国語(EUC-TW) 54936 GB18030 簡体字中国語 (GB2312/GBKの拡張) 949 ks_c_5601-1987 韓国語 (UHC=EUC-KRの拡張) Windows1250 中央ヨーロッパ言語(チェコ語等) iso-8859-2 Windows1251 キリル言語(ロシア語等) Windows1253 ギリシャ語 iso-8859-7 Windows1254 トルコ語 iso-8859-9 Windows1255 ヘブライ語 iso-8859-8 Windows1256 アラビア語 Windows1257 バルト言語 iso-8859-13 Windows1258 ベトナム語 TIS-620/Windows874 タイ語 iso-8859-11 引数で指定されたbyte配列がBOMありUTFファイルと判定できる場合、その文字コードを返します。 判定対象のバイト配列 バイト配列先頭の読み込み済バイト数(LEASTREADSIZEのバイト数以上読み込んでおくこと) BOMから判定できた文字コード種類、合致なしの場合null ファイル文字コード種類名 先頭バイト識別データ(BOM/マジックナンバー) エンコーディング コードページ番号(Unicode以外のローカルなエンコーディングを使用するものについて設定あり。遅延初期化用の退避変数を兼ねる) 基本コンストラクタ ファイル文字コード種類名を定義する デコード時に使用するCodePageを指定(正値ならDecoderExceptionFallback、マイナス値ならDecoderReplacementFallBackを設定) 先頭バイト識別データを指定する 基本コンストラクタ ファイル文字コード種類名を定義する デコード時に使用するEncodingを指定する 先頭バイト識別データを指定する このファイル文字コード種類のEncodingオブジェクトを取得します。 引数のバイト配列から文字列を取り出します。失敗時はnullが返ります。 判定対象のバイト配列 ファイルサイズ(バイト配列先頭からの先頭からのデコード対象バイト数) このファイル文字コード種類の名前を取得します。 判定対象のファイル文字コード種類一覧から、BOM/マジックナンバーが一致するものを探索して返す 判定対象のバイト配列 バイト配列先頭の読み込み済バイト数(LEASTREADSIZEのバイト数以上読み込んでおくこと) 判定対象とするファイル文字コード種類の一覧 先頭バイトが一致したファイル文字コード種類、合致なしの場合null 文字コード種類:テキスト EUC補助漢字特殊処理(MS版CP20932の特異なコード体系によりデコードする) JIS補助漢字特殊処理(MS版CP20932の特異なコード体系によりデコードする) ReadJEnc ファイル読み出し&ファイル文字コード種類自動判別(Rev.20170821) 単一ファイル読み出し用にファイルを指定して新しいインスタンスを初期化します。 読み出すファイル(このファイルのサイズどおりに読み出し領域バッファを確保する) 複数ファイル連続読み出し用にバッファサイズを指定して新しいインスタンスを初期化します。 最大読み出しファイルサイズ(領域バッファ確保サイズ) ファイル読み出し用のリソースを解放します。 ファイル読み出し用のリソースを解放します。 文字コード自動判別対象言語指定(初期状態は日本語ShiftJIS) ファイルを読み出してファイル文字コード種類を取得します。 読み出すファイル ファイル文字コード種類の判定結果 Readメソッド呼び出し時にファイルから読み出したテキスト文字列内容を取得します。 ファイルからテキストが取り出せなかった場合はnullとなります。 ファイル内容の読み出し先領域 現在読み出し済のファイルサイズ非読み出し時は0、分割読み出し時は読込済部分のサイズ ファイルから取り出したテキスト文字列 読み込んであるバイト配列のプリアンブル(BOMヘッダ/マジックナンバー)からファイル文字コード種類特定を試みる ファイルサイズ(未読込部分も含む。読み込み済サイズはthis.Lengthを参照) 確定した場合、ファイル文字コード種類。確定できなかった場合null ReadJEnc ファイル種類定義(Rev.20170821) 読み込み失敗 空ファイル 巨大ファイル バイナリ Javaバイナリ Windowsバイナリ Windowsショートカット PDF Zip圧縮 GZip圧縮 7zip圧縮 Rar圧縮 Cab圧縮 BZip2圧縮 Z(compress)圧縮 BMP画像 GIF画像 JPEG画像 PNG画像 TIFF画像 Windowsアイコン画像マジックナンバーのほか追加チェックあり BOM/マジックナンバー一致判定にあたり、最低限読み込みを済ませておく必要がある先頭バイト数です。 引数で指定されたbyte配列についてバイナリファイルの種類を判定します。 判定対象のバイト配列 バイト配列先頭の読み込み済バイト数(LEASTREADSIZEのバイト数以上読み込んでおくこと) バイナリファイル種類判定結果(どれにも該当しなければ一般バイナリと判定) ファイル文字コード種類:バイナリ ファイル文字コード種類:Zipバイナリ ファイル文字コード種類:画像 ReadJEnc 文字コード自動判別ライブラリ・処理本体(Rev.20180421) 日本語文字コード判別(SJIS/EUCJP) ANSI文字コード判別(CP1252) 繁体字中国語文字コード判別(BIG5/EUCTW) 簡体字中国語文字コード判別(GB18030) ハングル文字コード判別(UHCKR) Windows1250(iso-8859-2) 中央ヨーロッパ言語(チェコ語等)判別 Windows1251 キリル言語(ロシア語等)&ANSI判別 Windows1253(iso-8859-7) ギリシャ語&ANSI判別 Windows1254(iso-8859-9) トルコ語判別 Windows1255(iso-8859-8) ヘブライ語&ANSI判別 Windows1256 アラビア語&ANSI判別 Windows1257(iso-8859-13) バルト言語判別 Windows1258 ベトナム語判別 TIS620/Windows874(iso-8859-11) タイ語&ANSI判別 バイナリと判定するDEL文字コード、兼、ASCII/非ASCIIの境界文字コード 非テキストファイルと判定する制御文字コードの最大値 このインスタンスでおもに判別対象とするデフォルト文字コード EUCデコードで用いる文字コード(無指定null時はEUCの判別を行わない) CP1252系で判別対象とする文字コード(デフォルトはANSI=CP1252) CP1252系の判別にあたり、0x80-0x9Fのうち文字コード未定義の箇所をbitで表現した値 デフォルトの非CP1252チェック用定義値(0x2001A002)=未定義の81,8D,8F,90,9Dに対応するビットがON FEDC BA98 7654 3210 FEDC BA98 7654 3210 ---- ---- ---- ---- ---- ---- ---- ---- (0x9#) 0010 0000 0000 0001 (0x8#) 1010 0000 0000 0010 引数指定文字コード/CP1252/EUCを判別対象とする際のコンストラクタ このインスタンスで判別対象とするデフォルト文字コード EUCの文字コード CP1252系文字コードのみを判別対象とする際のコンストラクタ CP1252系の判別対象デフォルト文字コード(CP1252以外を指定) 0x80-0x9Fのうち文字コード未定義の箇所をbitで表現した値 オブジェクト文字列表現として、自動判別デフォルト文字コードの名前を返す バイト配列を全走査し、文字コードを自動判別する 判定対象のバイト配列 ファイルサイズ(バイト配列先頭からのデコード対象バイト数) out 判別した文字コードにより取り出したテキスト文字列(非テキストならnull) 文字コード判別結果(非テキストならnull) デフォルト文字コードの判定スコア算出(判定開始位置~ファイル末尾までの範囲を対象) 判定対象のバイト配列 判定開始位置(非ASCII文字コードが初めて登場した位置) ファイルサイズ(バイト配列先頭からのデコード対象バイト数) 判定スコア算出結果 BOMなしUTF16の可能性があるか(先頭文字がASCIIか否かをもとに)判定 判定対象のバイト配列 ファイルサイズ(バイト配列先頭からのデコード対象バイト数) UTF16Nと思われる場合はその文字コード、否ならnull JIS判定関連処理クラス SO/SI文字出現チェック 判定対象のバイト配列 ファイルサイズ(バイト配列先頭からのデコード対象バイト数) 出現していればtrue、否ならfalse JIS補助漢字エスケープシーケンス有無(有ならtrue) ISO-2022-KRエスケープシーケンス有無(有ならtrue) JIS評価値(JISとしてデコードすべきなら正値、否ならマイナス値) JISエスケープシーケンス判定オブジェクト初期化(およびISO-2022-KR判定) 判定対象のバイト配列 ファイルサイズ(バイト配列先頭からのデコード対象バイト数) エスケープ(0x1B)出現位置 JISエスケープシーケンス妥当性チェック エスケープ(0x1B)出現位置 エスケープシーケンスとして妥当ならpos加算値、そうでなければゼロ JISと判定された場合の文字コードを確定する out 判別した文字コードにより取り出したテキスト文字列(非テキストならnull) カナSO/SI有無やデコード不能箇所有無に応じたJIS文字コード種類 SJIS評価クラス 日本語ShiftJIS・EUCJP・CP1252を判別対象とする際のコンストラクタ BIG5TW評価クラス 中国語繁体字・EUC-TW・CP1252を判別対象とする際のコンストラクタ GB18030評価クラス 中国語簡体字・CP1252を判別対象とする際のコンストラクタ UHCKR評価クラス ハングルUHC・CP1252を判別対象とする際のコンストラクタ 1バイト文字コード汎用評価クラス タイ語ほかアルファベットと混在させない文字種の文字コード判別で共通仕様 その文字コード体系固有のコードの開始位置 0x80-0xFFの文字コード未定義の箇所をbitで表現した値 引数指定文字コードとCP1252を判別対象とする際のコンストラクタ このインスタンスで判別対象とするデフォルト文字コード 通常文字/この文字コード固有の文字種範囲の境界 文字コード未定義の箇所をbitで表現した値 [0]=0x80-0x9Fの未定義箇所 [1]=0xA0-0xBFの未定義箇所 [2]=0xC0-0xDFの未定義箇所 [3]=0xE0-0xFFの未定義箇所