ページ 11

MobileConverterの文字コード変換がうまくできない(CSVダウンロード)

Posted: 2012年12月18日(火) 12:12
by aru
いつもお世話になっております。

作成しているサイトでCSVファイルのダウンロードをしようとしているのですが
文字コードUTF-8では、Excelで文字化けしてしまうため、
ダウンロードファイルだけShift_JISに変換しようとしています。

なお、ダウンロードファイルはヘッダをPHPで出力して
データ部分をDittoで出力しているのですが、データ部分がUTF-8になっております。

・CSVヘッダ出力

コード: 全て選択

<?php
// CSVヘッダ 
header("Cache-Control: public"); 
header("Pragma: public"); 
Header("Content-type: application/x-csv; charset=Shift_JIS");
header("Content-Disposition: attachment; filename=list.csv");

// 見出し 
echo mb_convert_encoding("番号,日時,内容,\r\n", "SJIS", "UTF-8");
?>
・CSVデータ出力

コード: 全て選択

[!Download_header!][!Ditto? &extenders=`request`&language=`japanese-utf8`&tpl=`detailCSV`&sortBy=`pagetitle`&parents=`65`&paginate=`1` &display=`5`!]
そこで、MobileConverterの文字コード変換機能で、UTF-8からShift_JISに変換できないかと
試してみたのですが、変換がうまく効いていないようでUTF-8のままでした。
MobileConverterのバージョン:2.10

・MobileConverter 設定

コード: 全て選択

&enableCharConv=文字コード変換;string;yes 
&g1_targetDoc=Grp1:リソースID;string;1422 
&g1_1_matchStr=Grp1:スマフォ用Agent;string;Mozilla 
&g1_1_template=Grp1:スマフォ用テンプレート;string;Download 
&g1_1_charset=Grp1:Charset;string;Shift_JIS 
ダウンロード以外に通常の画面でも、MobileConverterでテンプレートの置き換えは出来るのですが、
文字コードの変換が動作しませんでした。

何か間違っている点などご指摘頂ければと思います。
また文字コード変換について、他に良い方法などご存知の方がいらっしゃいましたら教えて頂けないでしょうか。
よろしくお願い致します。

-----
ご利用のサーバ:ロリポップ
MODXのバージョン:1.0.6J-r4
PHPのバージョン:5.2.17
MySQLのバージョン:5.1.59-community-log
ブラウザ:Firefox 17.0.1
-----

Re: MobileConverterの文字コード変換がうまくできない(CSVダウンロード)

Posted: 2012年12月24日(月) 13:52
by yama

コード: 全て選択

$modx->documentOutput = mb_convert_encoding($modx->documentOutput, 'SJIS', 'utf-8');
上記のような一行プラグインを作ってOnWebPagePrerenderにチェックを入れて保存すると、意図どおりの結果になりますでしょうか?

http://121224135327-1936.evo.demo.modx.jp/manager/
http://121224135327-1936.evo.demo.modx.jp/
http://121224135327-1936.evo.demo.modx.jp/features.html
デモサイトに組み込んでみました

Re: MobileConverterの文字コード変換がうまくできない(CSVダウンロード)  【解決済み】

Posted: 2012年12月25日(火) 12:03
by aru
yamaさん

いつもありがとうございます。

頂きましたプラグインで、意図した通りのコード変換ができました。
ありがとうございました。