MT5の日本語化ハマりポイント



     スカイアークシステム
       上西 宏幸(pirolix)
          2009/12/09
MT5での文字列の扱い
 MT4以前: $stringは単なるバイト列
 MT5: Perl内部表現形式(Unicode)

       utf8::is_utf8($string) → true
   use utf8;
    ...
Unicodeの表現
 use utf8;
  my $alpha = "α";
 my $alpha = "¥x{3b1}";

 my $alpha = chr(0x3b1);

 my $alpha = pack("U", 0x3...
Unicodeの表示
 my $alpha = “¥x{3b1}”;
  print $alpha;
  → Wide character in print at XXX.pl line X.
 my $alpha = "¥x{3b1}";...
互換性を持った書き方
   require utf8 if 5 <= $MT::VERSION;
       ×use utf8 if 5 <= $MT::VERSION;

   $string = 5 <= $MT::VERSION...
こんな時
 外部サイトから取得したデータ(RSSなど)をサ
  イトに表示する
 テーブルのデータをファイルに書き出す
Upcoming SlideShare
Loading in …5
×

MT5の日本語化ハマりポイントの解説

3,315 views

Published on

Published in: Technology, Spiritual
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,315
On SlideShare
0
From Embeds
0
Number of Embeds
126
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

MT5の日本語化ハマりポイントの解説

  1. 1. MT5の日本語化ハマりポイント スカイアークシステム 上西 宏幸(pirolix) 2009/12/09
  2. 2. MT5での文字列の扱い  MT4以前: $stringは単なるバイト列  MT5: Perl内部表現形式(Unicode)  utf8::is_utf8($string) → true  use utf8;  ソースコード中の文字列がUTF8になる  マルチバイトの変数名なども使える
  3. 3. Unicodeの表現  use utf8; my $alpha = "α";  my $alpha = "¥x{3b1}";  my $alpha = chr(0x3b1);  my $alpha = pack("U", 0x3b1);
  4. 4. Unicodeの表示  my $alpha = “¥x{3b1}”; print $alpha; → Wide character in print at XXX.pl line X.  my $alpha = "¥x{3b1}"; utf8::encode($alpha); print $alpha;
  5. 5. 互換性を持った書き方  require utf8 if 5 <= $MT::VERSION;  ×use utf8 if 5 <= $MT::VERSION;  $string = 5 <= $MT::VERSION ? Encode::encode($string) : $string;
  6. 6. こんな時  外部サイトから取得したデータ(RSSなど)をサ イトに表示する  テーブルのデータをファイルに書き出す

×