ファイルの文字コードを推定するコマンド(Mac)
概要
ファイルの文字コードを推定するコマンドを調べた。
環境
os: maxOS Sierra Version 10.12.6
terminal: iTerm2 Build 3.1.5
内容
ターミナル
$ file --mime tmp.txt
tmp.txt: text/plain; charset=utf-8
$ file --mime tmp.txt
tmp.txt: text/plain; charset=utf-8
tmp.txtのcharsetがutf-8
であることが推定された。
詳細
文字コードを推定するためのファイルを作る
ターミナル
$ cat <<EOF > tmp.txt
heredoc> こんにちは
heredoc> 世界
heredoc> EOF
$ cat tmp.txt
こんにちは
世界
$ cat <<EOF > tmp.txt
heredoc> こんにちは
heredoc> 世界
heredoc> EOF
$ cat tmp.txt
こんにちは
世界
tmp.txtというファイルを作成した。
文字コードを推定する
$ file --mime tmp.txt
tmp.txt: text/plain; charset=utf-8
tmp.txtのcharsetは、utf-8となっていると推定された。
(charsetとは、character setのことで、コンピューターの文字コード系のことらしい?[2])
fileコマンドの--mimeオプションの確認
$ file --help
Usage: file [OPTION...] [FILE...]
Determine type of FILEs.
(中略)
-I, --mime output MIME type strings (--mime-type and
--mime-encoding)
(以下略)
--mime
は、MIMEタイプの文字列を出力するためのオプションらしいと分かった。
(今回は、--mime-type
がtext/plain
で、--mime-encoding
がutf-8
のようだ)
マイム【MIME】[multipurpose Internet mail extensions]
電子メールで、文字のほか、画像や音声、動画などさまざまなデータを転送するための規格。[3]
意義
文字コードを推定の仕方が分かった。
おまけ
同じ環境で、半角英数字のみでファイルを構成すると、us-ascii
と推定される。
$ cat <<EOF >tmp.txt
heredoc> hello
heredoc> 123
heredoc> EOF
$ file --mime tmp.txt
tmp.txt: text/plain; charset=us-ascii
これは、utf-8が半角英数字ではus-asciiと同じエンコーディングを採用しているからではないかと思っています。(関連:[4])
参考文献
[1]http://fukuyama.co/file-i-mime
[2]https://eow.alc.co.jp/search?q=character+set&ref=wl
[3]https://kotobank.jp/word/MIME-8967
[4]https://ja.wikipedia.org/wiki/UTF-8
Author And Source
この問題について(ファイルの文字コードを推定するコマンド(Mac)), 我々は、より多くの情報をここで見つけました https://qiita.com/tans/items/ad188ce91cbbbf7ce69d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .