利用ガイド
概観
インストール
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つ目の引数 options
は nkf
コマンドに渡され、変換方法を指定します。
引数 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
"こんにちわ"