テキストを他のOSとの間でやりとりできるように変換する

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips > テキストを他のOSとの間でやりとりできるように変換する
「Windowsで作ったテキストファイルをLinuxで開くと文字化けする」
「メールで受け取ったファイルの文字コードを変換したい」

WindowsとLinuxでは、デフォルトの文字コードや改行コードが異なるため、そのままではファイルが正しく表示されないことがあります。

この記事では、nkf(Network Kanji Filter)コマンドを使って、文字コードと改行コードを変換する方法を解説します。
Shift-JIS・EUC-JP・UTF-8の相互変換と、改行コード(CRLF↔LF)の変換まで順番にまとめました。

【この記事でわかること】

・nkf -e ファイル名 でEUC-JPに変換して表示できる
・nkf -w ファイル名 でUTF-8に変換できる
・nkf -s ファイル名 でShift-JISに変換できる
・nkf -Lu で改行コードをLF(Linux形式)に変換できる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

nkf コマンドの基本的な使い方

nkf(Network Kanji Filter)は文字コードと改行コードを変換するコマンドです。
Linuxでは標準で使えることが多く、なければ yum install nkfapt install nkf でインストールできます。

文字コードを変換する

1. ファイルの文字コードを確認する

# ファイルの文字コードを確認する $ nkf --guess moji.txt Shift_JIS (CRLF) # ↑Shift-JISのWindowsファイルと確認できました

2. Shift-JIS → EUC-JP に変換する

# 文字化けしているファイルを確認する $ cat moji.txt Linux答{ 瓶 気陶誘メ[h # EUC-JP に変換して表示する $ nkf -e moji.txt Linuxで日本語を扱うときは文字コードに注意 # EUC-JP に変換してファイルに保存する $ nkf -e moji.txt > moji_euc.txt

3. 各文字コードへの変換オプション

# UTF-8 に変換する $ nkf -w moji.txt > moji_utf8.txt # EUC-JP に変換する $ nkf -e moji.txt > moji_euc.txt # Shift-JIS に変換する $ nkf -s moji.txt > moji_sjis.txt # JIS(ISO-2022-JP)に変換する $ nkf -j moji.txt > moji_jis.txt

改行コードを変換する

Windows(CRLF) → Linux(LF) に変換する

# Windowsの改行コード(CRLF)をLinuxの改行コード(LF)に変換する $ nkf -Lu moji.txt > moji_linux.txt # 文字コードの変換と改行コードの変換を同時に行う $ nkf -w -Lu moji.txt > moji_utf8_linux.txt

Linux(LF) → Windows(CRLF) に変換する

# LinuxのLFをWindowsのCRLFに変換する $ nkf -Lw moji.txt > moji_windows.txt

iconv コマンドを使う方法

nkf がない環境では iconv コマンドで代替できます。

# Shift-JIS から UTF-8 に変換する $ iconv -f SHIFT_JIS -t UTF-8 moji.txt > moji_utf8.txt # 文字コードを確認する $ file moji.txt moji.txt: ISO-8859 text

本記事のまとめ

やりたいこと コマンド
文字コードを確認する nkf --guess ファイル名
UTF-8に変換する nkf -w ファイル名 > 出力ファイル名
EUC-JPに変換する nkf -e ファイル名 > 出力ファイル名
Shift-JISに変換する nkf -s ファイル名 > 出力ファイル名
CRLF→LFに変換する(Linux形式) nkf -Lu ファイル名 > 出力ファイル名
LF→CRLFに変換する(Windows形式) nkf -Lw ファイル名 > 出力ファイル名
文字コードと改行コードの変換は、異なるOS間でファイルをやりとりする際に必ず直面する問題です。
nkf --guess で現在の文字コードを確認してから変換する習慣をつけましょう。

OS間のテキスト変換を確実に行い、文字化けや改行コードのトラブルを防ぐ

nkfやiconvを使いこなせると、Windowsとのファイルやりとりで起きる文字コードの問題を素早く解決できます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。