質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

3回答

3035閲覧

Linux 文字コードの変更について

hisasuke

総合スコア20

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2015/11/29 03:17

文字コードがUTF-8のファイルがあります。
(「file test01.txt」コマンドの結果が「test01.txt: UTF-8 Unicode text」の状態)

このファイルを一度euc-jpに変え、再度UTF-8に戻したところ、
文字化けしたままの状態となりました。

一度文字コードを変えたファイルは戻すことができないのでしょうか。
分かる方おりましたらよろしくお願いいたします。

【実際に変更した方法】
$ cat test01.txt
あいうえお

$ file test01.txt
test01.txt: UTF-8 Unicode text

$ vi test01.txt
※viのコマンドモードで「:set fenc=euc-jp」

$ file test01.txt
test01.txt: ISO-8859 text

$ cat test01.txt
、「、、、ヲ、ィ、ェ

$ vi test01.txt
※viのコマンドモードで「:set fenc=UTF-8」

$ file test01.txt
test01.txt: UTF-8 Unicode text

$ cat test01.txt
?¢???|?¨?a

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

viが文字コードを自動認識する設定になっていないのではないでしょうか。
そうだとしたら、

$ vi test01.txt
※viのコマンドモードで「:set fenc=euc-jp」

とeuc-jpで保存されたファイルを

$ vi test01.txt
※viのコマンドモードで「:set fenc=UTF-8」

の際に、UTF-8として開いて、その文字化けした文字列がUTF-8であるとしてファイルに書き込まれているのだと思います。

:e ++enc=euc-jp

などとして、別の文字コードを指定して読み込み直した結果を確認されてから保存されてはいかがでしょうか。

投稿2015/11/29 14:43

KoichiSugiyama

総合スコア3041

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hisasuke

2015/11/30 14:35

:e ++enc=euc-jpで読み込みなおしてから保存した結果、文字化けしなくなりました! ありがとうございました。
guest

0

euc-jp でエンコーディングされたファイルを vim で開くときに、vim 側では euc-jp ではなく UTF-8 と思って読み込んでいるのだと思います。

LANG=ja_JP.euc-jp vi test01.txt とすれば euc-jp で読み込むことはでき、":set fenc=utf-8" で UTF-8 で書き出すことができますが、vi での表示も euc-jp となりますので、文字化けすると思います。

nkf などを使って変換した方がいいと思います。

投稿2015/11/29 14:32

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

状況を正しく理解出来ていないので、外している可能性大ですが、
文字エンコードとロケールを体感するCommentsAdd Star
http://d.hatena.ne.jp/zariganitosh/20131118/text_encoding_locale_feeling
【linux】viでの文字コードの扱い。文字コード変更したりファイルエンコードを指定して保存したり(fileencoding, fileencodings, encoding)
http://tweeeety.hateblo.jp/entry/2014/12/17/222935
で、今回の場合の操作で、何をししまったかが、理解できるかも。
【linux】ファイルの文字コードを変換する。vi、iconv、nkf (nkfの文字コード判定とか一括変換は便利)
http://tweeeety.hateblo.jp/entry/2014/12/17/230611
やら、

投稿2015/11/29 04:14

daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問