例えば、Windows用のサクラエディタで作成したテキストファイルを、Linux用テキストエディタgeditで開くと、次のようになってしまいます。これだと、何が書かれているのか、全く読み取ることができません。
《文字化けを起こしたテキストファイル》
このような文字化けが起きる要因は、2つあります。
一つが、文字エンコーディングの違い
もう一つが、改行コードの違い
です。
上に掲載画像の文字化けは、文字エンコーディングが原因ではない、と言い切れます。なぜかというと、Windows用のサクラエディタも、Linux用のgeditも、両者とも文字コードは「UTF-8」に設定しているので、両者一致しているからです。
ということは、上記文字化けの原因は、「改行コードの違い」ということになります。
そもそも、
Windowsでは、 CRLF が標準の改行コード
Linuxでは、LFが標準の改行コード
となっていて、一致していないからです。
文字化け対策としては、改行コードを統一する必要があります。
Windowsで作成されたファイルの改行コード(CRLF)を、Linuxに適した改行コード(LF)に変換できるならば、この問題は解消します。
私がまっさきに思いついたのは、sedコマンドや、awkコマンドを使っての改行コードの変換です。
けれども、ネットで調べてみると、そんな面倒な作業をするまでもなく、より直接的なコマンドがあることが分かりました。
それは、「dos2unix」というコマンドです。Linuxにはdos2unixというコマンドがあり、これを使って改行コードを変換できます。
$ dos2unix hogehoge.txt
といった使い方になります。
たったこの一行だけで、ファイル内のすべての改行コードを一発で変換できるというのです。
それで,さっそくやってみました(・・・・私の場合は、Ubuntuディストリビューションです。)。
すると・・・、
「コマンド 'dos2unix' が見つかりません。次の方法でインストールできます:
sudo apt install dos2unix」
というメッセージが出ました。
初期段階では、dos2unixコマンドはインストールされていないことが分かりました。
そこで、Linuxのご提案に従い、sudo apt install でインストール作業を行いました。
すると、ターミナル上に次のメッセージが出て、すぐにインストールが完了しました。
以下のパッケージが新たにインストールされます:
dos2unix
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 3 個。
384 kB のアーカイブを取得する必要があります。
この操作後に追加で 1,367 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu jammy/universe amd64 dos2unix amd64 7.4.2-2 [384 kB]
384 kB を 2秒 で取得しました 。
無事にインストールができたので、改めて次のコマンドを実行しました。
$ dos2unix hogehoge.txt
そうしたならば、
dos2unix: UTF-16LE ファイル hogehoge.txt を UTF-8 の Unix 形式へ変換しています...
というメッセージが出て、変換作業がうまくいきました。
変換後のテキストファイルを開いてみると、文字化けの一切ない、まともな文書となっています。
「おぉ、できた!」
・・・・これにてぇ、あぁ、一件落着ぅ~!
それでは、また次の記事で
■■■■ goosyun ■■■■
最近の「Ubuntu」カテゴリーもっと見る
最近の記事
カテゴリー
バックナンバー
人気記事