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

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

新規登録して質問してみよう
ただいま回答率
85.50%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

2回答

3736閲覧

vimエディタにおける文字化け

退会済みユーザー

退会済みユーザー

総合スコア0

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2020/06/10 03:26

編集2020/06/10 04:18

イメージ説明イメージ説明vimエディタでの文字化けに関して。

よろしくお願いいたします。vimを使ってtxtファイルを開き、insertで記述していくとなぜか日本語(平仮名+漢字)が文字化けしてしまいます。

調べたところ、vimにおけるencodeの設定の問題がありそうだったので、

set enc?とset fenc?で確認したところ、どちらも「utf-8」でした。

vim ~/.vimrcより、設定を変更し以下のように記載

html

1set encoding=utf-8 2set fenc=utf-8 3set enc=utf-8 4set fileencodings=iso-2022-jp,utf-8,cp932,euc-jp,sjis 5set fileformats=unix,dos,mac

こちらを設定したのですが、治らず。。。。

set encodingでeuc-jp,sjisともに試しましたが、文字化けは治りませんでした。

環境設定におけるエンコードの設定がうまくいっていないのかと思い

setコマンドおよびlocaleコマンドにて確認しましたが

LANG=ja_JP.UTF-8

となっておりました。

一通り関連していそうなところは調べましたが、原因がわかりませんでした。

何かアドバイスなどいただけますと幸いに存じます。

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

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

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

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

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

y_waiwai

2020/06/10 03:27

どういうふうに文字化けしてるのか、スクリーンキャプチャを提示できませ4んか
hentaiman

2020/06/10 03:31

元のテキストファイルと同じ文字コードで開いてもダメって意味ですか? ????が・・・になるような感じですかね?
退会済みユーザー

退会済みユーザー

2020/06/10 03:39

画像アップロードしました。 上記は --------------------- あいうえお かきくけこ 東京許可局 国土交通省 123456789 987654321 --------------------- と入力した場合です。 fencのエラーが発生しているのですが set fenc?で確認すると「fileencoding=cp932」となっております、。
hentaiman

2020/06/10 03:41

cp932ならcp932(sjis)で開かないと
退会済みユーザー

退会済みユーザー

2020/06/10 04:00

失礼いたしました。 fenc=cp932の場合は どうやら「E513: write error, conversion failed (make 'fenc' empty to override)」 が出てしまって保存できなかったので、いちど 「:set fenc=」にてfencを空にしたら保存できましたが再度開いて保存したい場合は 「E45: 'readonly' option is set (add ! to override)」エラーにて保存不可能 試したいくつかのパターン ------------------------------------------ Enc=utf-8 fenc= ?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^M ?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^M ?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^M ?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^M ?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^M 123456789 987654321 ~ ~ ~ ------------------------------------------ enc=sjis fenc=cp932 ?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V??^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^M . . 同じような文字がれるがそもそも「E513: write error, conversion failed (make 'fenc' empty to override)」 により保存できない。 ------------------------------------------ Enc=utf-8 fenc=utf-8 ?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V??^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^M . . 今度はE45: 'readonly' option is set (add ! to override)エラーにて保存できない ------------------------------------------ それぞれvimで開いてから :set enc= :set fenc= の形式でエンコードを変更しましたが、どうやら変更後にそもそ保存ができないところ問題がありそうです。 パーミッション関係でエラーが起きているかもしれません、自分でも調べてみます
退会済みユーザー

退会済みユーザー

2020/06/10 04:06

chmodにてパーミッションも変更し -rwxrw-r--@ 1 admin としましたが、やはりvimで開いて :wq保存コマンドを行うと、「E45: 'readonly' option is set (add ! to override)」なるエラーが発生してしまいます。。。。
guest

回答2

0

ベストアンサー

一旦、不必要だと思われる情報を削除しvimrcの内容を変更しました。

[変更前]
set encoding=utf-8
set fenc=utf-8
set enc=utf-8
set fileencodings=iso-2022-jp,utf-8,cp932,euc-jp,sjis
set fileformats=unix,dos,mac

[変更後]
set fileencodings=iso-2022-jp,utf-8,cp932,euc-jp,sjis
set fileformats=unix,dos,mac

その後、

:w !sudo tee %

を打ち込み強制的に保存すると
W12: Warning: File "ls.txt" has changed and the buffer was changed in Vim as well.......(省略)

[和訳]
W12: 警告: ファイル "hosts" が変更されVimのバッファも変更されました
詳細は ":help W12" を参照してください
[O]K, ファイル読込((L)):」

と表示され、その後、:q!で落とした後
再度開いて新たに情報を追加して:wqを入力したところ、なぜかいけました。

バッファがvim同様に変更された?のような記述がエラーとして出ておりました。
明確な理由が分からないので、気持ち悪いのですが、今後も出現するかもしれないので、
原因追及に努めます。

投稿2020/06/10 05:36

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

見た感じMacのTerminalですが、vimではなくシェルでも文字化けしますか?
もしシェルでも文字化けするようなら、Terminalの設定→プロファイル→Advanced(当方英語環境なのですが日本語での表記が思い当たりませんでした。わざわざ変えるのも面倒ですしすいません。)→入力→「escape non-ASCII input with Control-V」にチェックが入っていないことを確認してください。

投稿2020/06/10 04:09

masashi-aso

総合スコア2

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

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

退会済みユーザー

退会済みユーザー

2020/06/10 04:20

ターミナルプロファイルの設定を画像アップロードさせていただきました! 設定のControl-v 非ASCII をエスケープにチェックが入っていたので、チェックを外して再度vim で開いてみましたが、やはりE45: 'readonly' option is set (add ! to override) が出現してしまい保存できないようです。 :qa!で終了させることはできます。。。
imt

2020/06/10 04:37

ファイルがreadonlyになってるか、書き込み権限のないアカウントで書き込もうとしてるか、もしくは書き込めない場所に書き込もうとしてるのではないでしょうか。:w /tmp/a など打った後、vim上で同じ操作したらどうなりますか?
退会済みユーザー

退会済みユーザー

2020/06/10 04:57

ご回答ありがとうございます!:w /tmp/aを入力すると 一瞬「W10: warning changing readonly file」と表示された後に txtファイルの右上に:w /tmp/aと記述されその後、通常通り日本語入力ができました。 ただ、やはり:wqでの保存等はできず、相変わらず「E45: 'readonly' option is set (add ! to override)」と出てしまいます..... 以下のように日本語記述は確認できました。 :w /tmp/a?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^M ?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^M ?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^M ?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^M ?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^V?^M 123456789 987654321 おはよう 今日は 今晩は ~ ~
退会済みユーザー

退会済みユーザー

2020/06/10 05:01

アカウントはいつも使用しているアカウントでして、パーミッションを確認したところも 対象となっているファイルに関しては以下 -rwxrw-r--@ 1 admin staff 187 6 10 12:48 ls.txt なので、おそらく書き込みは可能だと思われるのですが。。。。 PATHの通し方がおかしいことがあるので、そこが少し気になっておりますが、 今まで普通に入力できていたので、なんとも言えない状況です。 記憶では vimを扱い始めて、初期設定のencodingとfileencodingの設定 set encoding=utf-8 set fileencodings=iso-2022-jp,utf-8,cp932,euc-jp,sjis この辺りを弄ってからおかしくなった気がします... ただ、それ以前の状況は確認しておらず、以前の状態は分からなくなってしまっております。
退会済みユーザー

退会済みユーザー

2020/06/10 05:32

一旦、不必要だと思われる情報を削除しvimrcの内容を変更しました。 [変更前] set encoding=utf-8 set fenc=utf-8 set enc=utf-8 set fileencodings=iso-2022-jp,utf-8,cp932,euc-jp,sjis set fileformats=unix,dos,mac [変更後] set fileencodings=iso-2022-jp,utf-8,cp932,euc-jp,sjis set fileformats=unix,dos,mac その後、 :w !sudo tee % を打ち込み強制的に保存すると W12: Warning: File "ls.txt" has changed and the buffer was changed in Vim as well.......(省略) [和訳] W12: 警告: ファイル "hosts" が変更されVimのバッファも変更されました 詳細は ":help W12" を参照してください [O]K, ファイル読込((L)):」 と表示され、その後、:q!で落とした後 再度開いて新たに情報を追加して:wqを入力したところ、なぜかいけました。 バッファがvim同様に変更された?のような記述がエラーとして出ておりました。 明確な理由が分からないので、気持ち悪いのですが、今後も出現するかもしれないので、 原因追及に努めます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問