利用ガイド

概観

NKF-overview

インストール

nkf

NKFtool を使うシステムには、nkf コマンドがインストール済でなければなりません。 Unix 類似のオペレーティングシステム(OS)の多くでは、 OS付属のパッケージマネージメントシステムからインストールできます。

例えば、Ubuntu Linux では、apt-get コマンドを用います。

sudo apt-get install nkf

MacOSX では、Homebrew を用います。

brew install nkf

NKFtool

NKFtoolは、Julia 1.0 以上が必要です。

Julia のパッケージ・マネージメントシステムを用いて NKFtool をインストールするには、 ] を打鍵しパッケージマネージメントを起動してから、以下を実行します。

    (v1.1) pkg> add NKFtool

文字列のエンコードを変換する

nkf コマンドは、日本語テキストのエンコードを推定できます。

文字列 from のエンコードを推定するには nkf_guess(from::String) を使います。

julia> nkf_guess(raw"こんにちわ")
"UTF-8"

julia> nkf_convert( raw"こんにちわ", "-j") |> nkf_guess
"ISO-2022-JP"

julia> nkf_convert( raw"こんにちわ", "-e") |> nkf_guess
"EUC-JP"

julia> nkf_convert( raw"こんにちわ", "-s") |> nkf_guess
"Shift_JIS"

文字列 from のエンコードを変換するには nkf_convert(from::String, options="-w -m0") を使います。

2つ目の引数 optionsnkf コマンドに渡され、変換方法を指定します。

引数 options の既定値は -w -m0 (出力エンコード UTF-8, no MIME デコードなし) です。 これは、Julia の標準文字列のエンコード(UTF-8)を維持することを意味します。

julia> nkf_convert(raw"こんにちわ")
"こんにちわ"

julia> nkf_convert(raw"こんにちわ", "-w -m0")
"こんにちわ"

エンコードを変換するには、出力エンコーディングのオプションを一つだけ指定します。 すなわち、-j (ISO-2022-JP), -s (Shift_JIS), -e (EUC-JP), または -w (UTF-8) のどれかです。

入力文字列のエンコードが分かっている場合には、 入力エンコーディングのオプションを一つだけ指定してもよいです。 すなわち、 -J, -S, -E, または -W のどれかです。

nkf_convert の戻り値は、テキストの出力文字列です。

Julia では、UTF-8 以外でエンコードされた文字列は印字可能ではありません。 これらを印字可能な文字列に変換するのが便利でしょう。 例えば、以下のように Base64.base64encode() を使います。

julia> using Base64

julia> nkf_convert( raw"こんにちわ", "-j") |> base64encode
"GyRCJDMkcyRLJEEkbxsoQg=="

julia> String(base64decode(ans)) |> nkf_convert
"こんにちわ"

テキストストリームを変換する

nkf_guess は、第1引数としてテキストの入力ストリームも受け取ります。

nkf_convert も、第1引数としてテキストの入力ストリームを受け取ります。

例えば、テキストファイルのエンコードを推定するには、 以下のように、 nkf_guess(from::IO) を使います。

julia> open("hello_sjis.txt","w") do f
           print(f, nkf_convert(raw"こんにちわ", "-s"))
       end
       #
       encoding=open("hello_sjis.txt") do f
           nkf_guess(f)
       end
"Shift_JIS"

Shift_JIS エンコーディングされたテキストファイルを UTF-8 に変換して、Julia の文字列として読み込むには、 以下のように、 nkf_convert(from::IO, options="-w -m0") を使います。

julia> hello_utf=open("hello_sjis.txt") do f
           nkf_convert(f, "-w -m0")
       end
"こんにちわ"