今回は、「iPhoneにメールを送る場合の文字化けについて」という内容で書かせて頂きます。
送ったメールが文字化けする
最近よくメール機能でフリーメールなどに送った場合は正常に表示されるのに、iPhoneにメールを送った場合だけ文字化けする。
といった内容のお問い合わせを受けます。
結論から言いますと、これはメールの内容に日本語が含まれているからです。(正しくは2バイト文字)
ですので、メール内容を全部半角英数にすれば問題は解決します。
例えば、iPhoneに下記のようなコードでメールを送った場合、
SendMail("Mail",
"時間 : "+TimeToStr(TimeLocal())+
"¥n通貨ペア : "+OrderSymbol()+
"¥nシグナル : 買い"+
"¥n取得レート : "+DoubleToStr(OrderOpenPrice() ,Digits)+
"¥nロット : "+DoubleToStr(OrderLots(),2)+
"¥n¥n¥n"+"口座残高 : "+DoubleToStr(AccountBalance(),0)+"円"+
"¥n"+"有効証拠金 : "+DoubleToStr(AccountEquity(),0)+"円"+
"¥n"+"余剰証拠金 : "+DoubleToStr(AccountFreeMargin(),0)+"円");
iPhoneでは、下記のように文字化けして表示されます。
: 2012.03.27 17:16
y A : USDJPY
V O i :
[ g : 82.825
b g : 0.1
c : 4992750 ~
L : 4992590 ~
] : 4984308 ~
これを全部半角英数の下記のようなコードにすると、
SendMail("Mail",
"Time : "+TimeToStr(TimeLocal())+
"¥nSymbol : "+OrderSymbol()+
"¥nSignal : New Buy"+
"¥nOpen Price : "+DoubleToStr(OrderOpenPrice() ,Digits)+
"¥nLots : "+DoubleToStr(OrderLots(),2)+
"¥n¥n¥n"+"Balance : "+DoubleToStr(AccountBalance(),0)+" Yen"+
"¥n"+"Equity : "+DoubleToStr(AccountEquity(),0)+" Yen"+
"¥n"+"FreeMargin : "+DoubleToStr(AccountFreeMargin(),0)+" Yen");
文字化けせずに下記のように正常に表示されます。
Time : 2012.03.27 17:19
Symbol : USDJPY
Signal : New Buy
Open Price : 82.830
Lots : 0.1
Balance : 4992620 Yen
Equity : 4992460 Yen
FreeMargin : 4984177 Yen
iPhoneにメールを送る時は、全部半角英数にするようにしましょう。
今回はこれで終了です。