プログラミング言語別ソースコードのエンコーディング規約
2014年になっても文字コードには悩まされることはしばしば。
最近だと取り敢えずUTF-8
ということが多いですが、
プログラミング言語だとどうなっているのかちょっと気になったので調べて纏めてみました。
プログラミング言語の選定には特に意味はありません。
Python (3系列)
デフォルトではUTF-8
として扱われるようです。
ただし別のエンコーディングを使用したい場合にはソースコード中にその旨を記載することで使用できます。
#!/usr/bin/env python # -*- coding: encoding -*- # `#!(シェバング)の次の行に書く`
- 参考: Python3 document
Ruby (Ver. 2.0以上)
こちらもデフォルトではUTF-8
のようです。Pythonと同様、magic commentでエンコーディングを指定することができます。
# encoding: UTF-8 # シェバングが無ければ最初の行に書く # coding: UTF-8 # `coding`か`encoding`の次に`:`、スペース、その次にエンコーディングの名前を書く
- 参考: Ruby doc
Golang
こちらはUTF-8
オンリーみたいですね。BOMは無視するみたいです。
- 参考: golang.org
Haskell
GHC 6.6以降からはUTF-8
がソースコードのエンコードとして定義されたみたいです。
- 参考: stackoverflow
Rust
こちらも当然UTF-8
。NKFC
にて正規化されたものとまで定義されているのでエライ徹底っぷりです。
- 参考: Rust doc
Erlang
Erlang/OTP R16AからUTF-8
をサポートし、Erlang/OTP 17.0からデフォルトのソースコードエンコーディングになったようですね。
- 参考: Erlang doc
Java
特に決まっていないようです。コンパイルオプションでエンコーディングが指定でき、特に指定がなければ環境依存っぽいですね。
$ javac ... -encoding UTF-8
- 参考: Java doc
CSharp
よくわからんかった…誰か教えて下さい(´・ω・`)
結論
UTF-8
使いましょう