<Linux, Windows, Vim, Python> 文字コードの確かめ方
文字コード character encoding
の確かめ方。
Linux
[1]>locale # 設定をみる。 LANG="ja_JP.UTF-8" LC_CTYPE="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_ALL= [2]>nkf -g hage.txt # 各ファイルのコードを確認する。 UTF-8 [3]>file -b hage.txt # 別の方法。 Non-ISO extended-ASCII text, with CRLF line terminators
Windows
C:\>chcp 現在のコード ページ: 932 # shift-jis
コードページ一覧。
Code Page Identifiers (Windows)
Vim
: set enc? encoding=utf-8
Vim / ファイルの中身
: set fileencoding? fileencoding=utf-8
セットするには?
の代わりに=sjis
とかにする。
: set fileencoding=sjis
Vimマニュアル。
mbyte - Vim日本語ドキュメント
Python
20170423 追加。
chardet
ちゅうモジュールをpipして使う。
In [1]: import chardet In [8]: import requests In [9]: r = requests.get('http://kakaku.com') In [10]: chardet.detect(r.content) Out[10]: {'confidence': 0.99, 'encoding': 'SHIFT_JIS', 'language': 'Japanese'}
応用。
ファイルをバイナリモードmode='rb'
で読み込む
In [1]: import chardet In [2]: f = open('aaa.txt', mode='rb') In [3]: f.read(100) Out[3]: b'sdfasdfa\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\n' In [4]: f.read() Out[4]: b'' In [10]: f = open('aaa.txt', 'rb') In [11]: chardet.detect(f.read()) Out[11]: {'confidence': 0.87625, 'encoding': 'utf-8', 'language': ''}
端末の設定をみる。
In [36]: import locale In [37]: locale.getpreferredencoding() Out[37]: 'cp932'