#blog2navi()
*IlohaMailでCP932を表示する [#la83d492]
IlohaMailは一応一通りの日本語エンコードに対応しているようで、lang/jp/jcode.inc にも以下のコメントがあります。~
~
■lang/jp/jcode.inc
#code(java,first-line:11){{
//0:AUTO DETECT
//1:EUC-JP
//2:Shift_JIS
//3:ISO-2022-JP(JIS)
}}
(UTFはたぶんjp以外の所で対応)~
~
しかし、auのezwebメールは、こんなcharsetで本文を送ってくるため、デコードできずに化けてしまいます。~
~
■ヘッダーの記述
>Content-Type: text/plain; charset=cp932
<
■本文
>���C����H ~
8��9��`12��(3��4��j�淀����B
<
そこで、とりあえず読めれば良いので、CP932をSJISと見なして変換させます。~
変更箇所は1カ所。
~
~
■lang/EUC-JP.inc~
まずCP932を対応文字セットとして追加します。~
#code(java,first-line:31){{
$CS_CAN_CONVERT["ISO-2022-JP"]=1;
$CS_CAN_CONVERT["EUC-JP"]=1;
$CS_CAN_CONVERT["X-EUC-JP"]=1;
$CS_CAN_CONVERT["Shift-JIS"]=1;
$CS_CAN_CONVERT["JIS"]=1;
$CS_CAN_CONVERT["ISO-8859-1"]=1;
$CS_CAN_CONVERT["CP932"]=1;
}}
次にCP932の場合はJcodeConvertでのAUTO DETECTが効かなかったので、if文で分けて処理します。~
#code(java,first-line:44){{
}else if (strcasecmp($charset, "x-euc-jp")==0){
if ($from_charset=="CP932"){
return JcodeConvert($string, 2, 1);
} else {
return JcodeConvert($string, 0, 1);
}
}else{
}}
~
これで正常にデコードされるようになりました。
RIGHT:Category: [[[Linux>日記/Category/Linux]]] - 11:01:02
----
RIGHT:&blog2trackback();
#comment(above)
#blog2navi()