Module: Kana::Translator::Engine::Nkf
- Included in:
- Kana::Translator
- Defined in:
- lib/kana/translator/engine/nkf.rb
Constant Summary collapse
- SYM_ENC =
{ :sjis => NKF::SJIS, :eucjp => NKF::EUC, :utf8 => NKF::UTF8, :utf16 => NKF::UTF16, :jis => NKF::JIS, }.freeze
- ENC_OPT =
{ NKF::SJIS => '-S', NKF::EUC => '-E', NKF::UTF8 => '-W', NKF::UTF16 => '-W16', NKF::JIS => '-J', }.freeze
- DEC_OPT =
{ NKF::SJIS => '-s', NKF::EUC => '-e', NKF::UTF16 => '-w16', NKF::JIS => '-j', }.freeze
Instance Method Summary collapse
- #support?(str, enc) ⇒ Boolean
- #to_encode(str, original_encoding) ⇒ Object
- #to_utf8(str, original_encoding = nil) ⇒ Object
Instance Method Details
#support?(str, enc) ⇒ Boolean
43 44 45 |
# File 'lib/kana/translator/engine/nkf.rb', line 43 def support?(str, enc) (SYM_ENC[enc] || ([NKF::BINARY, NKF::UNKNOWN].include?(NKF.guess(str)) == false)) end |
#to_encode(str, original_encoding) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/kana/translator/engine/nkf.rb', line 36 def to_encode(str, original_encoding) return str if original_encoding == NKF::UTF8 || original_encoding == NKF::ASCII enc = DEC_OPT[original_encoding] opt = ['-m0', '-x', '-W', enc] NKF.nkf(opt.join(' '), str) end |
#to_utf8(str, original_encoding = nil) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/kana/translator/engine/nkf.rb', line 26 def to_utf8(str, original_encoding=nil) original_encoding = SYM_ENC[original_encoding] || original_encoding || NKF.guess(str) if original_encoding != NKF::UTF8 && original_encoding != NKF::ASCII opt = ['-m0', '-x', '-w'] opt << ENC_OPT[original_encoding] str = NKF.nkf(opt.join(' '), str) end [str, original_encoding] end |