Last active
June 9, 2025 01:10
-
-
Save ernix/e008320eb34212f69cbe025b6250988f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| set fileencodings=ucs-bom,utf-8,cp51932,euc-jp-ms,cp932,gb18030 | |
| autocmd BufReadPost * if search('\%x1b\(\$[B@]\|([BJI]\)', 'w') > 0 | | |
| \ e ++enc=cp50221 | endif | |
| autocmd BufReadPost * if &fileencoding ==# 'cp50221' | | |
| \ setlocal fileencoding=iso-2022-jp | endif | |
| autocmd BufReadPost * if &fileencoding ==# 'cp51932' | | |
| \ setlocal fileencoding=euc-jp | endif | |
| autocmd BufReadPost * if &fileencoding ==# 'euc-jp-ms' | | |
| \ setlocal fileencoding=euc-jp | endif | |
| " 日本語の文字エンコーディングを取り巻く環境は混沌としている。 | |
| " 過去のベンダーの囲い込み戦略もあり、多くの文字エンコーディングは言葉通りの意味を持たない。 | |
| " エディタが取るべきスタンスはファイルを開く際に寛容的に振る舞い、ファイルを保存する際は | |
| " 厳格にIANAが定めた文字エンコーディングに従うことである。 | |
| " 1. BOMがあればそのBOMが定めた文字エンコーディングに従う (UTF-16など) | |
| " 2. UTF-8を規定の文字エンコーディングとする。新規に作成した場合もUTF-8。 | |
| " 3. CP51932でデコードを試みる。SS3(補助漢字)を含まないEUC-JPはここに落ちる。 | |
| " 4. eucJP-msでデコードを試みる。SS3(補助漢字)を含むEUC-JPはここに落ちる。 | |
| " 5. CP932でデコードを試みる。Shift_JISはここに落ちる。 | |
| " 6. GB18030でデコードを試みる。GB2312,GBKはここに落ちる。 | |
| " 7. UTF-8で開けてもエスケープシーケンスの存在するものはCP50221で開き直す。ISO-2022-JPはここに落ちる。 | |
| " 8. CP51932で開いたファイルは保存時の文字エンコーディングをEUC-JPとする。 | |
| " 9. CP50221で開いたファイルは保存時の文字エンコーディングをISO-2022-JPとする。 | |
| " 10. eucJP-msで開いたファイルは保存時の文字エンコーディングをEUC-JPとする。 | |
| " CP932のみ例外とする。狭義のShift_JISが使われる場面はもはやほとんど存在しない。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment