zsh の履歴ファイルの中の特定の一行(fzf で選択などする)を、日本語が含まれているのなら正確な utf-8 に戻して閲覧したり、実行したりできるようにしたいです。しかし、特殊なエンコードが使われているようで難しいです。
LANG="ja_JP.UTF-8"
で、zsh の履歴ファイル HISTFILE はエンコード的には utf-8 のように見えますが、metafy という特殊なエンコードが行われているらしく、日本語を含む文字列は文字化けします。
参考:
shell
1% echo "echo 'あいうえお'" | od -t x1 20000000 65 63 68 6f 20 27 e3 81 82 e3 81 84 e3 81 86 e3 30000020 81 88 e3 81 8a 27 0a 40000027 5 6# unsetopt extended_history (履歴に時刻を記述しない設定)にて 7% cat $HISTFILE | tail -n 1 | od -t x1 80000000 65 63 68 6f 20 27 e3 81 82 e3 81 83 a4 e3 81 83 90000020 a6 e3 81 83 a8 e3 81 83 aa 27 0a 100000033
御覧の通り、日本語部分の随所に *3 a*
が含まれてしまいます。
そのけっか、そのまま閲覧しようとすると
echo 'あぃ?ぃ?ぃ?ぃ?'
のようになってしまいます。
回答2件
あなたの回答
tips
プレビュー