【MQL4定数】文字コードの定数​(CP_○○)

【辞書】MQLリファレンス

文字コードの定数​(CP_○○)

文字コードの定数​は、文字コードを指定したいときに使用します。

文字コードを指定しない場合は、自動的にWindowsOSのANSI(CP_ACP)の文字コードが使用されます。

MQL4のプログラミングでは、文字コードを変換する場合はほとんどないので、文字コードは特に指定する必要はありません。

しかし、OSが変わった時に文字化けなどの不具合が出ることがあります。

その時に文字コードを指定すると良いでしょう。

文字コードを指定できる関数は以下の通りです。

これらの関数の引数として、文字コードの定数が使用されます。

  • CharArrayToString
  • StringToCharArray
  • FileOpen

 

文字コードの定数​(CP_○○)

定数数値説明
CP_ACP0WindowsANSIコードページ
CP_OEMCP1現在のシステムのOEMコードページ
CP_MACCP2Macintoshコードページ
CP_THREAD_ACP3現在のスレッド用のWindowsANSIコードページ
CP_SYMBOL42シンボルコードページ
CP_UTF765000UTF-7コードページ
CP_UTF865001UTF-8コードページ

 

文字コードの定数​(CP_○○)の使い方

文字コードを指定できる関数で使用します。

例えば、StringToCharArray関数で使用する場合は、以下のように使用します。

void OnInit() {
    string tmpstr  = "ABCDE";
    uchar  tmparray[];
    int    copyednum;
    
    ArrayResize(tmparray,6);               // 動的配列のサイズを6に変更
    
    copyednum = StringToCharArray(
                                  tmpstr,    // コピー元の文字列
                                  tmparray,  // コピー先配列
                                  1,         // コピー開始する配列インデックス
                                  3,         // コピーする文字数
                                  CP_ACP    // コードページ:ANSI
              );

    for ( int icount =0 ; icount < 6 ; icount++ ) {
        printf( "tmparray[%d] = %c",icount, tmparray[icount]);
    }
    Print("コピー数:",copyednum);
}

 

上記のように記述すると、以下のように表示されます。

tmparray[0] =
tmparray[1] = A
tmparray[2] = B
tmparray[3] = C
tmparray[4] =
tmparray[5] =
コピー数:3