文字コードと改行について-Ubuntu編
始めに
例えば、他の OS より作成されたファイルを開く時、文字化けされ、更に、意図したような改行でなく、テキストエディターなどで開いた時、ビジュアル的に読めない資料もあると思います。
私自身、最近、Ubuntu (Ubuntu 20.04 LTS) を利用していて、昔々に作成した Microsoft Visual Studio で作成したコードを開く際、文字化けしていて物凄く面倒なことをしたことがありました。
nkf というコマンドを端末より利用すると、利用者好みの文字コード、改行コードに変換できました。
今回、この文字コードの変換などを行うツールと思われる nkf コマンドにつき、備忘録的に紹介します。
尚、この投稿に当たり、数多くのいろいろなブログなどを参考にさせて頂きました。
ちなみに、sudo apt install nkf にて、nkf をインストールさせました。
使用例
端末を利用しました。
ユーザー名@パソコンの名前(ホスト名):/$ nkf -wLu –overwrite sample.csv
各々の意味合い
- -wLu
- 出力の文字コード UTF-8で、改行が LF (Unix)
- –overwrite
-
元ファイルを上書きする。ファイル名で与える必要があるらしい。
[-w]、[-W]でも、この –overwrite を付けないとファイルの内容が、Emacsみたいに端末に表示され、変換されなかった。 - sample.csv
-
ファイルの名称
今回は、カンマ区切りのテキスト・ファイルを利用しました。
尚、cat でも、利用できるようです。
cat sample.csv | nkf –guess
オプション
オプションについて、概略説明します。(ほとんど、いろいろな方々が投稿しておられたブログや 日経Linux よりの拾い読みです。)
尚、オプションの大文字、小文字も意味合いがあるみたいです。
文字コードの指定
大文字が入力の文字コード、小文字が出力の文字コード
- -J, -j
- ISO-2022-JP
- -S, -s
- Shift-JIS
- -E, -e
- EUC-JP
- -W, -w
- UTF-8 « 私の場合、このオプションが主だと思います。
改行コード
L は、半角の大文字です。
- -Lu
- 改行コード LF (Unix) でよくある形式に変換 « 私の場合、このオプションが主だと思います。
- -Lw
- 改行コード CR+LF (Windows) でよくある形式に変換
- -Lm
- 改行コード CR (Mac) でかつてよくあった形式に変換
その他として
- -x
- 半角カナを半角のままにする。このオプションを付けないと全角に変換されるらしい。
- –guess
-
変換でなく、文字コードを調べるオプションと思います。
-g でも良さそうですが、意図したような動作はしませんでした。
–guess の利用が無難です。 - –overwrite
- 変換した結果を標準出力するのではなく、元ファイルを上書きする。 入力は標準入力からではなく、ファイル名で与える必要がある。
端末の表示
list3-01.txt という、ファイルの既存の文字コード、改行コードをチェック (–guess) して、文字コードを UTF-8 に出力 (-w)、改行コードを Unix でみられる LF (-Lu) に変換した時の端末の表示を紹介します。
ユーザー名@パソコンの名前(ホスト名):/$ nkf --guess list3-01.txt « 変更前の文字、改行コードの確認 Shift_JIS (CRLF) 文字コード Shift_JIS 改行コード CR+LF (Windowsでみられる改行コード) ユーザー名@パソコンの名前(ホスト名):/$ nkf -wLu --overwrite list3-01.txt « 文字コードを UTF-8 に、改行コードを LF に変える。 ユーザー名@パソコンの名前(ホスト名):/$ nkf --guess list3-01.txt « 変更後の文字、改行コードの確認 UTF-8 (LF) 文字コード UTF-8 改行コード LF (Unixでみられる改行コード)
この投稿の改定履歴
このページには、各種広告も掲示しています。
掲示した広告、及び、スタイルの変更については、履歴を記載しません。
- 2021年03月15日
- 新規投稿