カテゴリー
Uncategorized

文字コード自動判別の個人的なメモ

流れはこんな感じだった。

  1. BOM チェックで Unicode を判別
  2. chardet などでエンコーディングを推定
    1. UTF/MBCS ならデコード試行
  3. ユーザーロケールのエンコーディングでデコード試行
  4. chardet などでエンコーディングを推定
    1. 非 UTF/MBCS ならデコード試行
  5. 結果が UTF/MBCS なら次の判別で優先的に試行する

問題点:

  • ユーザー情報がないとかなりどうしようもない
  • 判別が成功したかどうか判別できない
    • 間違ったエンコーディングでもデコード出来ることは多い
  • 既に化けているデータには手も足も出ない
  • chardet などの自動判別では SBCS の判別は不可能に近い
  • MBCS 非対応ソフトは MBCS の lead byte でぶった切ることがある

エンコーディングの採用基準:

  • 最近のフォーマット・仕様は UTF-8 が多い
    • UTF-8 じゃなかったら逃げ出した方が楽
  • 国際化を少しでも考えているものはなんらかの UTF を使っている
  • 昔のは OS (Windows) の標準エンコーディングをそのまま使っている。コードページくらい埋め込め

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です