模組 Kconv

Ruby 的漢字轉換器。

常數

ASCII

ASCII

AUTO

自動偵測

BINARY

BINARY

EUC

EUC-JP

JIS

ISO-2022-JP

NOCONV

NOCONV

SJIS

Shift_JIS

UNKNOWN

UNKNOWN

UTF16

UTF-16

UTF32

UTF-32

UTF8

UTF-8

公開類別方法

guess(str) → encoding 按一下以切換來源

透過 NKF.guess 猜測輸入編碼

# File ext/nkf/lib/kconv.rb, line 141
def guess(str)
  ::NKF::guess(str)
end
iseuc(str) → true or false 按一下以切換來源

傳回輸入編碼是否為 EUC-JP。

注意 不要期待此傳回值為 MatchData

# File ext/nkf/lib/kconv.rb, line 156
def iseuc(str)
  str.dup.force_encoding(EUC).valid_encoding?
end
isjis(str) → true or false 按一下以切換來源

傳回輸入編碼是否為 ISO-2022-JP。

# File ext/nkf/lib/kconv.rb, line 174
def isjis(str)
  /\A [\t\n\r\x20-\x7E]*
    (?:
      (?:\x1b \x28 I      [\x21-\x7E]*
        |\x1b \x28 J      [\x21-\x7E]*
        |\x1b \x24 @      (?:[\x21-\x7E]{2})*
        |\x1b \x24 B      (?:[\x21-\x7E]{2})*
        |\x1b \x24 \x28 D (?:[\x21-\x7E]{2})*
      )*
      \x1b \x28 B [\t\n\r\x20-\x7E]*
    )*
   \z/nox =~ str.dup.force_encoding('BINARY') ? true : false
end
issjis(str) → true or false 按一下以切換來源

傳回輸入編碼是否為 Shift_JIS。

# File ext/nkf/lib/kconv.rb, line 165
def issjis(str)
  str.dup.force_encoding(SJIS).valid_encoding?
end
isutf8(str) → true or false 按一下以切換來源

傳回輸入編碼是否為 UTF-8。

# File ext/nkf/lib/kconv.rb, line 193
def isutf8(str)
  str.dup.force_encoding(UTF8).valid_encoding?
end
kconv(str, to_enc, from_enc=nil) 按一下以切換來源

str 轉換為 to_encto_encfrom_enc 顯示為 KconvEncoding 物件的常數。

# File ext/nkf/lib/kconv.rb, line 57
def kconv(str, to_enc, from_enc=nil)
  opt = ''
  opt += ' --ic=' + from_enc.to_s if from_enc
  opt += ' --oc=' + to_enc.to_s if to_enc

  ::NKF::nkf(opt, str)
end
toeuc(str) → string 按一下以切換來源

str 轉換為 EUC-JP

# File ext/nkf/lib/kconv.rb, line 83
def toeuc(str)
  kconv(str, EUC)
end
tojis(str) → string 按一下以切換來源

str 轉換為 ISO-2022-JP

# File ext/nkf/lib/kconv.rb, line 74
def tojis(str)
  kconv(str, JIS)
end
tolocale → string 按一下以切換來源

self 轉換為區域編碼

# File ext/nkf/lib/kconv.rb, line 128
def tolocale(str)
  kconv(str, Encoding.locale_charmap)
end
tosjis(str) → string 按一下以切換來源

str 轉換為 Shift_JIS

# File ext/nkf/lib/kconv.rb, line 92
def tosjis(str)
  kconv(str, SJIS)
end
toutf16(str) → string 按一下以切換來源

str 轉換為 UTF-16

# File ext/nkf/lib/kconv.rb, line 110
def toutf16(str)
  kconv(str, UTF16)
end
toutf32(str) → string 按一下以切換來源

str 轉換為 UTF-32

# File ext/nkf/lib/kconv.rb, line 119
def toutf32(str)
  kconv(str, UTF32)
end
toutf8(str) → string 按一下以切換來源

str 轉換為 UTF-8

# File ext/nkf/lib/kconv.rb, line 101
def toutf8(str)
  kconv(str, UTF8)
end

私人實例方法

guess(str) → encoding 按一下以切換來源

透過 NKF.guess 猜測輸入編碼

# File ext/nkf/lib/kconv.rb, line 141
def guess(str)
  ::NKF::guess(str)
end
iseuc(str) → true or false 按一下以切換來源

傳回輸入編碼是否為 EUC-JP。

注意 不要期待此傳回值為 MatchData

# File ext/nkf/lib/kconv.rb, line 156
def iseuc(str)
  str.dup.force_encoding(EUC).valid_encoding?
end
isjis(str) → true or false 按一下以切換來源

傳回輸入編碼是否為 ISO-2022-JP。

# File ext/nkf/lib/kconv.rb, line 174
def isjis(str)
  /\A [\t\n\r\x20-\x7E]*
    (?:
      (?:\x1b \x28 I      [\x21-\x7E]*
        |\x1b \x28 J      [\x21-\x7E]*
        |\x1b \x24 @      (?:[\x21-\x7E]{2})*
        |\x1b \x24 B      (?:[\x21-\x7E]{2})*
        |\x1b \x24 \x28 D (?:[\x21-\x7E]{2})*
      )*
      \x1b \x28 B [\t\n\r\x20-\x7E]*
    )*
   \z/nox =~ str.dup.force_encoding('BINARY') ? true : false
end
issjis(str) → true or false 按一下以切換來源

傳回輸入編碼是否為 Shift_JIS。

# File ext/nkf/lib/kconv.rb, line 165
def issjis(str)
  str.dup.force_encoding(SJIS).valid_encoding?
end
isutf8(str) → true or false 按一下以切換來源

傳回輸入編碼是否為 UTF-8。

# File ext/nkf/lib/kconv.rb, line 193
def isutf8(str)
  str.dup.force_encoding(UTF8).valid_encoding?
end
kconv(str, to_enc, from_enc=nil) 按一下以切換來源

str 轉換為 to_encto_encfrom_enc 顯示為 KconvEncoding 物件的常數。

# File ext/nkf/lib/kconv.rb, line 57
def kconv(str, to_enc, from_enc=nil)
  opt = ''
  opt += ' --ic=' + from_enc.to_s if from_enc
  opt += ' --oc=' + to_enc.to_s if to_enc

  ::NKF::nkf(opt, str)
end
toeuc(str) → string 按一下以切換來源

str 轉換為 EUC-JP

# File ext/nkf/lib/kconv.rb, line 83
def toeuc(str)
  kconv(str, EUC)
end
tojis(str) → string 按一下以切換來源

str 轉換為 ISO-2022-JP

# File ext/nkf/lib/kconv.rb, line 74
def tojis(str)
  kconv(str, JIS)
end
tolocale → string 按一下以切換來源

self 轉換為區域編碼

# File ext/nkf/lib/kconv.rb, line 128
def tolocale(str)
  kconv(str, Encoding.locale_charmap)
end
tosjis(str) → string 按一下以切換來源

str 轉換為 Shift_JIS

# File ext/nkf/lib/kconv.rb, line 92
def tosjis(str)
  kconv(str, SJIS)
end
toutf16(str) → string 按一下以切換來源

str 轉換為 UTF-16

# File ext/nkf/lib/kconv.rb, line 110
def toutf16(str)
  kconv(str, UTF16)
end
toutf32(str) → string 按一下以切換來源

str 轉換為 UTF-32

# File ext/nkf/lib/kconv.rb, line 119
def toutf32(str)
  kconv(str, UTF32)
end
toutf8(str) → string 按一下以切換來源

str 轉換為 UTF-8

# File ext/nkf/lib/kconv.rb, line 101
def toutf8(str)
  kconv(str, UTF8)
end