# module Kconv

Kanji Converter for Ruby.

### Constants

ASCII

  `ASCII`

AUTO

  Auto-Detect

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

### Public Class Methods

guess(str) → encoding click to toggle source

Guess input encoding by `NKF.guess`

    # File ext/nkf/lib/kconv.rb, line 141
    def guess(str)
      ::NKF::guess(str)
    end

iseuc(str) → true or false click to toggle source

Returns whether input encoding is EUC-JP or not.

Note don’t expect this return value is `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 click to toggle source

Returns whether input encoding is ISO-2022-JP or not.

    # 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 click to toggle source

Returns whether input encoding is Shift_JIS or not.

    # File ext/nkf/lib/kconv.rb, line 165
    def issjis(str)
      str.dup.force_encoding(SJIS).valid_encoding?
    end

isutf8(str) → true or false click to toggle source

Returns whether input encoding is UTF-8 or not.

    # 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) click to toggle source

Convert `str` to `to_enc`. `to_enc` and `from_enc` are given as constants of `Kconv` or `Encoding` objects.

    # 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 click to toggle source

Convert `str` to EUC-JP

    # File ext/nkf/lib/kconv.rb, line 83
    def toeuc(str)
      kconv(str, EUC)
    end

tojis(str) → string click to toggle source

Convert `str` to ISO-2022-JP

    # File ext/nkf/lib/kconv.rb, line 74
    def tojis(str)
      kconv(str, JIS)
    end

tolocale → string click to toggle source

Convert `self` to locale encoding

    # File ext/nkf/lib/kconv.rb, line 128
    def tolocale(str)
      kconv(str, Encoding.locale_charmap)
    end

tosjis(str) → string click to toggle source

Convert `str` to Shift_JIS

    # File ext/nkf/lib/kconv.rb, line 92
    def tosjis(str)
      kconv(str, SJIS)
    end

toutf16(str) → string click to toggle source

Convert `str` to UTF-16

    # File ext/nkf/lib/kconv.rb, line 110
    def toutf16(str)
      kconv(str, UTF16)
    end

toutf32(str) → string click to toggle source

Convert `str` to UTF-32

    # File ext/nkf/lib/kconv.rb, line 119
    def toutf32(str)
      kconv(str, UTF32)
    end

toutf8(str) → string click to toggle source

Convert `str` to UTF-8

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

### Private Instance Methods

guess(str) → encoding click to toggle source

Guess input encoding by `NKF.guess`

    # File ext/nkf/lib/kconv.rb, line 141
    def guess(str)
      ::NKF::guess(str)
    end

iseuc(str) → true or false click to toggle source

Returns whether input encoding is EUC-JP or not.

Note don’t expect this return value is `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 click to toggle source

Returns whether input encoding is ISO-2022-JP or not.

    # 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 click to toggle source

Returns whether input encoding is Shift_JIS or not.

    # File ext/nkf/lib/kconv.rb, line 165
    def issjis(str)
      str.dup.force_encoding(SJIS).valid_encoding?
    end

isutf8(str) → true or false click to toggle source

Returns whether input encoding is UTF-8 or not.

    # 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) click to toggle source

Convert `str` to `to_enc`. `to_enc` and `from_enc` are given as constants of `Kconv` or `Encoding` objects.

    # 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 click to toggle source

Convert `str` to EUC-JP

    # File ext/nkf/lib/kconv.rb, line 83
    def toeuc(str)
      kconv(str, EUC)
    end

tojis(str) → string click to toggle source

Convert `str` to ISO-2022-JP

    # File ext/nkf/lib/kconv.rb, line 74
    def tojis(str)
      kconv(str, JIS)
    end

tolocale → string click to toggle source

Convert `self` to locale encoding

    # File ext/nkf/lib/kconv.rb, line 128
    def tolocale(str)
      kconv(str, Encoding.locale_charmap)
    end

tosjis(str) → string click to toggle source

Convert `str` to Shift_JIS

    # File ext/nkf/lib/kconv.rb, line 92
    def tosjis(str)
      kconv(str, SJIS)
    end

toutf16(str) → string click to toggle source

Convert `str` to UTF-16

    # File ext/nkf/lib/kconv.rb, line 110
    def toutf16(str)
      kconv(str, UTF16)
    end

toutf32(str) → string click to toggle source

Convert `str` to UTF-32

    # File ext/nkf/lib/kconv.rb, line 119
    def toutf32(str)
      kconv(str, UTF32)
    end

toutf8(str) → string click to toggle source

Convert `str` to UTF-8

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