2018年5月3日木曜日

MQL 内で日本語は使わない方が良い

MQL4 のコンパイラ自体は UTF-8 や UTF-16 のマルチバイト文字を問題なく扱えているように見えます。

`printf` 内の文字列も出力できています。
コメントも日本語で大丈夫のようです。

```mq4
// コメントも OK
printf("テスト");
```

動作確認環境は - Windows 10 - Metatrader 4.00 build 1090 - Shift-JIS と UTF-16 ### それでも使わない それでも私は日本語を含むマルチバイトは使わないことに決めました。 まず、公式にはマルチバイトに関しての記述が見られません。 かつ、MetaEditor の扱う UTF がデフォルトで UTF-16 というのが問題ですこれは、MetaEditor が メモ帳などと同じ Windows 標準のコンポーネントを使っているからだと思われる。(Save as Unicode を使用した場合) 今の御時世、ソースコードは [VCS (Version Control System)](https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0) を使って管理します。 私は [git](https://git-scm.com/) を好んで使っていますが、git では UTF-16 を含むファイルはバイナリファイルとして扱われてしまうのですUTF-16 はその他の VCS でも相性が悪いものが多いです。 そのため、適切な差分管理が行えません。 どうも、一度 UTF-8 に変換してから MetaEditor で読み込み直すと、UTF-8 のまま処理できるという裏ワザもあるようですが、どこで元に戻るかよくわからないので、それも諦めました。 まぁ、そもそもそんなに文字列多用しないので日本語使わなくてもいいかな。