パソコン悪戦苦闘記録

改行コードの違いでWindowsテキストがLinuxで文字化け~その対策

 Windows上で作成したテキストファイルを、Linux上で開くと、よく文字化けを起こします。

 例えば、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
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「Ubuntu」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事