soramono雑記

Ubuntuメインのひよこユーザー。

Ubuntu【勉強中12】テキストエディターとエンコード

 VistaでメモりまくったテキストファイルをLinuxで文字化けなく開けるように確認作業をしています。

 WindowsのデフォルトはSHIFT_JISですが、環境依存文字(機種依存文字)が入力されているとUnicode保存を勧められます。そういうものなんだ、と勧められるままUnicode保存をしてきましたが、Linuxを使うようになってエンコードの複雑さを知りました。

 Vistaのnotepad(メモ帳)ではShift_JIS/Unicode/Unicode big endian/UTF-8の保存形式があり、大抵はShift_JIS/Unicodeで保存してきました。
 しかし、LinuxのデフォルトはUTF-8であり、SHIFT_JIS/Unicode手動追加する必要があります。(※geditの場合)それもUnicodeにも種類があり、適切でないと文字化けします。

 WindowsでのUnicodeUTF-16に当たるのですが、UTF-16にも更にUTF-16(LE)/(BE)があります。とりあえずUTF-16を追加しておけばいいのですが、ファイルエラーを起こした際にGeanyで確認してみたらUTF-16(LE)表示されていました。正直ここまでくると私の頭では理解が追いつかないのですが…Windowsって意外と大雑把な設定なのかな?

 冒頭のようにUbuntu上で確認しながらUTF-8に保存変更しているのですが、ちょこちょこエラーで読み込めないファイルが出ます。
 geditで読み込めない分はGeanyで読み込み、geditにコピペして保存置き換えです。
 で、たまに文字化けで読み込むファイルは、単純にエンコードが違う場合が多いです。Unicode保存したはずなのに、何故かCP932で開いた時は吃驚しました。Geanyで確認した時はISO-8859-1表示だったのに( ゚д゚)ナンデヤネン

 ちなみに改行コードはWindowsのままです。Linux=Windowsで共有前提なら、その方が便利なので。Unix/LinuxコードだとWindowsでは改行してくれなかった…。

 あと、機種依存文字(環境依存文字)はWindowsのバージョンによっては文字化けします。IMEを新しくすれば行けるのかな?少なくともVistaのデフォルト(Officeなし)だと無理でした。Google日本語入力だと行けるかも?(Win7以上対応)Windowsで文字化けしていてもLinuxでは正常表示されているので、純粋に対応IMEの差だと思います。


・・・Windows Vistaで確認・・・

 UbuntuUTF-8に変更したテキストファイルは無事にWindowsで文字化けなく表示されました。良かった良かった!(*´ω`*)モキュ

 Linux使うなんて思わなかったからUTF-8保存なんて選択肢すら無かったよ。
 でも、これからはUTF-8保存しておいた方が、OS変えた時に便利かも知れませんよね。(Macだとまた改行コード変えなきゃ駄目だけど…)

 ところで、VistaUnicodeテキストをUTF-8に変更保存してみました。ファイルサイズが増えましたヮ(゚д゚)ォ!
 とあるテキストファイルは、23KB→32KBに増えました。他のファイルも増量してます。エンコード変えただけなのに。
 Ubuntuではとりあえず数多いファイルを変更していたのでサイズまで気にしてなかったよ…。エンコードって圧縮も兼ねてたのかな…?