module Md2site::Nkfguess

NKF利用のエンコーディング推測モジュール

Public Class Methods

guess_file(fname, mes) click to toggle source

エンコーディング推測

@param fname [String] エンコーディング推測対象ファイル名 @param mes [Messagex] Messagexクラスのインスタンス @return [String] “ISO-2022-JP”, “eucJP”, “CP932”, “UTF-8”, “ASCII-8BIT”

# File lib/md2site/nkfguess.rb, line 13
def self.guess_file(fname, mes)
  str = nil
  mes.exc_file_read(fname) { File.open(fname) {|f| str = f.gets(nil) } }
  if str.nil?
    encoding = nil
  else
    case NKF.guess(str)
    when NKF::JIS
      encoding = "ISO-2022-JP"
    when NKF::EUC
      encoding = "eucJP"
    when NKF::SJIS
      encoding = "CP932"
    when NKF::UTF8
      encoding = "UTF-8"
    when NKF::BINARY
      encoding = "ASCII-8BIT"
    when NKF::ASCII
      encoding = "ASCII-8BIT"
    when NKF::UNKNOWN
      encoding = "ASCII-8BIT"
    else
      encoding = "ASCII-8BIT"
    end
  end
  encoding
end