
Ubuntu日本語フォーラム

ログインしていません。
Mac OSXからubuntuに移行しようと思っています。
Macで作ったテキストファイル(「日本語 MacOS」というフォーマットで保存)を、
USBメモリ経由でFMV830MG(ubuntu11.04)に移したのですが、geditで文字化け
してしまいます。
どうしたら、読めるようにできるのでしょうか?
オフライン
すいません、状況を追記します。
「日本語 MacOS」というのは、Macのテキストエディットの環境設定から
「標準テキスト」を選んだ設定において、文書を保存する際に
訊いてくるフォーマットのひとつです。
geditの「別名で保存」で、5種類くらいエンコーディングを
試してみたのですが、ダメでした。
オフライン
外したらごめんなさい。
文字コードの問題だと思うので文字化けするファイルをホームに置いて
$ file <ファイル名>
情報が表示されます。
例えばtestと言う名前のテキストファイルなら
$ file test
を実行すると
test: UTF-8 Unicode text
と表示されます。
geditを開き上部メニューから「開く」を選択します。
最下部に「エンコーディング」が有りますので先程調べた文字コードが有るかどうか確認してみてください。
もし無い様でしたら「追加と削除」から追加します。
「自動判別」で問題が解決するのであれば良いのですが、geditの文字コードをその都度変更しなければ対応できない場合はテキストファイル自体の文字コードを変換するのも手かも。
オフライン
joe110708 による投稿:
Macで作ったテキストファイル(「日本語 MacOS」というフォーマットで保存)を、
USBメモリ経由でFMV830MG(ubuntu11.04)に移したのですが、geditで文字化け
してしまいます。
文字コードにはいろんなモノがあり苦労が絶えません。
とりあえず、nkf というツールをインストールし、件のファイルが壊れてないか確認し、Ubuntuの gedit で読める様に変換して見てはどうでしょうか?
確認は、
$ nkf -g <ファイル名>
で行います。Ubuntuのデフォルト形式だと
UTF-8 (LF)
と返ってきます。
MacOS X 文書だと、UTF8-MAC とか、UTF-8 (CR) で返ってくるのではないでしょうか?
# ()の LF とか CR は行末コードを表します(OSにより行末コードは違います)。
LF : ラインフィード(Unix系の標準的な行末コード(0x0A))
CR : キャリッジリターン(Apple系の標準的な行末コード(0x0D))
因みに、MS-Windows系の場合の行末コードは CRLF (0x0A0D)
変換とかの詳しいところは、
$ man nkf
して、調べてみてください(man を終了するには、q を押します)。
オフライン
ごめんなさい。
確認したら、Ubuntu11.04 だと、
$ nkf -g <ファイル名>
の返り値に、行末コード表示がないですね!
オフライン
hir0様、si様、ご回答ありがとうございます。
$ file <ファイル名>
を実行したら、Non-ISO extended-ASCII text と表示されました。
で、インストールに手間取りましたが、nkfで変換できました!
行末コードこそ表示されませんでしたが、文字コードはShift_Jisでした。
geditの「別名で保存」からのShift_Jisではうまくいかなかったのに・・・。
本当に、文字コードには苦労させられるのですね。
また何かありましたら、宜しくお願い致します。
オフライン
joe110708 による投稿:
geditの「別名で保存」からのShift_Jisではうまくいかなかったのに・・・。
これは文字コードが正しく認識されているときに、
別の文字コードに変換して保存するための操作になります。
今回は自動認識で失敗していたため、その状態から別の文字コードに変換しても正しい内容では保存されません。
#3でhir0さんがかかれたような手順で、手動でSJISもしくはCP932指定でファイルを開き直せば、正しく内容が表示されるかと思います。
オフライン
hmatsueさん、ご回答ありがとうございます。
あ、本当だ、geditで、先に文字コードを指定してからファイルを開いたら
ちゃんと表示されました。
hir0さん、アドバイスを見落としてしまって申し訳ありません。
>geditの文字コードをその都度変更しなければ対応できない場合は
>テキストファイル自体の文字コードを変換するのも手かも。
これは、複数ファイルを一括して文字コードを変換する方法がある、ということでしょうか?
現状、geditでShift-Jisを指定して、複数ファイルを一括で開くことはできますが、
ちゃんと読めるものと、やはり文字化けしてしまうものが出てきてしまいます。
ところで、「ファイルを開く」時のエンコーディングで、自動認識をオフにして
Shift-Jis固定にしてしまうことはできるのでしょうか?
「追加と削除」のリスト右側には「自動認識」そのものが無いのですが・・・。
オフライン
joe110708 による投稿:
>geditの文字コードをその都度変更しなければ対応できない場合は
>テキストファイル自体の文字コードを変換するのも手かも。
これは、複数ファイルを一括して文字コードを変換する方法がある、ということでしょうか?
テキストファイル保存時にUTF8にしておくとか、
既存のファイルはnkfを使って、適当なシェルスクリプトを作って一括変換してしまうとかでしょうか。
joe110708 による投稿:
ところで、「ファイルを開く」時のエンコーディングで、自動認識をオフにして
Shift-Jis固定にしてしまうことはできるのでしょうか?
「追加と削除」のリスト右側には「自動認識」そのものが無いのですが・・・。
ちょっと探してみた範囲では自動認識をオフにする方法は見つかりませんでしたが、なにか方法はあるのかな。。
気になる情報として、
http://palepoli.skr.jp/tips/gedit/config.php
https://forums.ubuntulinux.jp/viewtopic.php?pid=29855
などが見つかりました。
自動認識の優先順位リストでCP932(多分SJISよりこっちの方がよいことが多いと思います)を最優先にしておくと、日本語環境では便利になるかも。
オフライン
CP932....
MSのSJISと、MacSJISでは、違う部分が有ります。
Wiki: http://ja.wikipedia.org/wiki/Microsoft%E3%82%B3%E3%83%BC%E3%83%89%E3%83%9A%E3%83%BC%E3%82%B8932#.E3.82.A2.E3.83.83.E3.83.97.E3.83.AB.E3.82.B3.E3.83.B3.E3.83.94.E3.83.A5.E3.83.BC.E3.82.BF.E3.81.AE.E3.82.B7.E3.83.95.E3.83.88_JIS
オフライン
si による投稿:
CP932....
MSのSJISと、MacSJISでは、違う部分が有ります。
Wiki: http://ja.wikipedia.org/wiki/Microsoft%E3%82%B3%E3%83%BC%E3%83%89%E3%83%9A%E3%83%BC%E3%82%B8932#.E3.82.A2.E3.83.83.E3.83.97.E3.83.AB.E3.82.B3.E3.83.B3.E3.83.94.E3.83.A5.E3.83.BC.E3.82.BF.E3.81.AE.E3.82.B7.E3.83.95.E3.83.88_JIS
ご教示、ありがとうございます。
MacOSでのSJISと、CP932の差については認識していませんでした。。
siさんがご紹介されているwikipediaのすぐ先ですが、
http://ja.wikipedia.org/wiki/MacJapanese#.E4.BB.96.E3.81.AE.E6.96.87.E5.AD.97.E3.82.B3.E3.83.BC.E3.83.89.E3.81.A8.E3.81.AE.E5.AF.BE.E5.BF.9C
も参考になりそうですね。
結局のところ、CP932やUTF8で表現できない文字を使用してしまっているMacOSXで作成した日本語ファイルは、どうしようも無い、ということになるのかしら。
MacJapaneseで調べてみたら、
piconvなんてものが見つかったので、もしかしたら、こういうものを使うと、内部で適切に置換してくれるのかも知れませんが。。
どうしようも無い文字もありそうな。。
オフライン
hmatsue様、si様、ご回答ありがとうございます。
設定エディタを少しいじってみましたが、やはり自動認識をオフにすることは
できなさそうです。ただ、nkfがかなり確実に変換してくれるようですので、
文字化けするファイルについては、地道にひとつひとつ対処していこうと
思います。
小容量・軽快な動作を理由に、OSXからの移行を考えております。
ネットや動画など、普通にやりたいことの9割方は問題なく動作しておりますので、
近々にデータの引っ越しをやろうかと思います。
文字コードは奥が深すぎて、今の所、手に負えない感じですね。
が、CUIと併せて、少しずつ勉強していこうと思います。
ご教示、どうもありがとうございました。
オフライン