:note

NKF.nkf

NKF.nkf は 半角カナ→全角 くらいしかつかってなかったので、 テキストの表記統一で注文がついたついでに、一度オプションを確認してみた。

module NKF (Ruby 2.3.0)

require 'nkf'
require 'minitest/autorun'

class String 
  def nkf_x
    NKF.nkf ' -w -X', self
  end
  
  def nkf_z0
    NKF.nkf ' -w -Z', self
  end

  def nkf_z1
    NKF.nkf ' -w -Z1', self
  end
  
  def nkf_z2
    NKF.nkf ' -w -Z2', self
  end
  
  def nkf_z3
    NKF.nkf ' -w -Z3', self
  end
  
end

class TestString < Minitest::Test
  def setup
    @foo = "><”!&1A-+アイウエオーガ ギグゲゴ()「」・"
  end
  
  def test_nkf_x
    # 半角カナ→全角、全角ハイフン(0xff0d)が半角になる
    assert_equal "><”!&1A−+アイウエオーガ ギグゲゴ()「」・", @foo.nkf_x
  end
  
  def test_nkf_z0
    # 半角カナ→全角、欧文一部
    assert_equal "><\"!&1A-+アイウエオーガ ギグゲゴ()「」・", @foo.nkf_z0
  end
  
  def test_nkf_z1
    # -Z0 + 全角スペース→1スペース
    assert_equal "><\"!&1A-+アイウエオーガ ギグゲゴ()「」・", @foo.nkf_z1
  end
  
  def test_nkf_z2
    # -Z0 + 全角スペースを→2スペース
    assert_equal "><\"!&1A-+アイウエオーガ  ギグゲゴ()「」・", @foo.nkf_z2
  end
  
  def test_nkf_z3
    # -Z0 + 一部エンコード
    assert_equal "&gt;&lt;&quot;!&amp;1A-+アイウエオーガ ギグゲゴ()「」・", @foo.nkf_z3
  end
  
end

 
comments powered by Disqus
back to top