文字化けの発生
以下のようなファイルを・・
$ cat curl_memo.txt
curl "https://www.googleapis.com/youtube/v3/search?key=$YOUTUBE_DATA_API&part=snippet&q=手芸&type=video"
vimで開くと文字化けした
curl "https://www.googleapis.com/youtube/v3/search?key=$YOUTUBE_DATA_API&part=snippet&q=謇玖敢&type=video"
~
~
~
curl_memo.txt [sjis][unix]
1,1 All
"curl_memo.txt" [converted] 1L, 112C
utf-8のファイルなのに、文字コード自動判別が誤ってsjisで開いてしまっているらしい。手芸
という文字コードがたまたま問題を引き起こしたようだ。
適切な.vimrcの設定とは?
googleで調べてみると、だいたい以下の設定を推奨していた。
過去に文字化けした時があり、自分も同じ設定をしている。
set encoding=utf-8set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
参考
対処
案1 文字コードを指定して開く
vim -c ":e ++enc=utf8" curl_memo.txt
デメリット:コマンドが長くて煩雑
案2 自動判別文字コードの最優先をutf-8にする
.vimrx
set encoding=utf-8set fileencodings=utf-8,iso-2022-jp,euc-jp,sjis
デメリット:utf-8ではない他のファイルを開くときに文字化けする可能性がある。
案3 開くファイルの先頭行に誤認識しない適当な文字のコメントを入れてutf-8と認識させる
# APIメモ
curl "https://www.googleapis.com/youtube/v3/search?key=$YOUTUBE_DATA_API&part=snippet&q=手芸&type=video"
~
~
~
curl_memo.txt [utf-8][unix]
2,1 All
"curl_memo.txt" 2L, 127C
案3は本末転倒な対処ではあるが、お手軽に文字化けを意識しないで済む