文字コード変換が出来ない、Mobile Joomla!。
出力するデータの文字コードを変換するしかないなーって事で、Mobile Joomla!のその辺を色々と弄くってみたら、結構あっさりとできた。
Mobile Joomla!用のエスクステンションを用意出来れば良いんだけど、その辺の知識は全く皆無なので、構成ファイルを変更してやります…。
変更が必要なファイルは、
- administrator/components/com_mobilejoomla/markup/chtml.php
- plugins/system/mobilebot.php
の2つ。
iモードで変換されるCompactHTMLの場合は、Shift_JISを利用させて、UTF-8からShift-JIS(SJIS-WIN)に変換して出力するような感じに変更。
chtml.phpの変更
2箇所変更が必要。
20行目辺り getCharset()の返り値
return 'UTF-8';
を
return 'Shift_JIS';
に変更。
30行目辺り getContentString()の返り値
return 'text/html; charset=UTF-8';
を
return 'text/html; charset=Shift_JIS';
に変更。
mobilebot.phpの変更
1箇所変更が必要。
388行目辺りJResponse::setBody($text);
JResponse::setBody($text);
を
//JResponse::setBody($text);
$mbce_divice =& MobileJoomla::getDevice();
switch($mbce_divice['markup']){
case 'chtml':
JResponse::setBody(mb_convert_encoding($text, 'SJIS-WIN', 'utf-8'));
break;
default:
JResponse::setBody($text);
break;
}
とか、こんな感じに変更。
文字コード変換続き…文字コード変換完結編へ