Ubuntu【勉強中12】テキストエディターとエンコード
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でのUnicodeはUTF-16に当たるのですが、UTF-16にも更にUTF-16(LE)/(BE)があります。とりあえずUTF-16を追加しておけばいいのですが、ファイルエラーを起こした際にGeanyで確認してみたらUTF-16(LE)表示されていました。正直ここまでくると私の頭では理解が追いつかないのですが…Windowsって意外と大雑把な設定なのかな?
geditで読み込めない分はGeanyで読み込み、geditにコピペして保存置き換えです。
で、たまに文字化けで読み込むファイルは、単純にエンコードが違う場合が多いです。Unicode保存したはずなのに、何故かCP932で開いた時は吃驚しました。Geanyで確認した時はISO-8859-1表示だったのに( ゚д゚)ナンデヤネン
あと、機種依存文字(環境依存文字)はWindowsのバージョンによっては文字化けします。IMEを新しくすれば行けるのかな?少なくともVistaのデフォルト(Officeなし)だと無理でした。Google日本語入力だと行けるかも?(Win7以上対応)Windowsで文字化けしていてもLinuxでは正常表示されているので、純粋に対応IMEの差だと思います。
・・・Windows Vistaで確認・・・
とあるテキストファイルは、23KB→32KBに増えました。他のファイルも増量してます。エンコード変えただけなのに。