スポンサーサイト

  • このエントリーを含むはてなブックマーク
  • Yahoo!ブックマークに登録
    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    アンケート管理LimeSurvey文字化け文字コード対策

  • このエントリーを含むはてなブックマーク
  • Yahoo!ブックマークに登録
    時間が空いてしまいました、色々はまっています。

    アクセスして頂いている検索キーワードを見ていましたら、
    limesurveyと文字コードというのが一番多く頂きました。

    放置してしまっておりましたが、送信メールに関して、
    iso-2022-jpにする場合に関して触れます。

    もし、メール以外でも文字化けが気になるところがあれば、
    コメントください。
    内部構造はUTF-8で処理できるつくりになっているので、
    メール以外は大丈夫だと思っていますが。

    さて、本題です。今回は、limesurvey-1.72でのコメントになります。
    1.80RC1が出ていますが、こちらはまだ確認できていません。

    いろいろ検証した結果、limesurveyのphpmailerの使い方の場合は、
    以下の二つのファイルを変えてあげればOKです。

    limesurvey/common.php
    limesurvey/classes/phpmailer/class.phpmailer.php

    書き換えるポイントですが、
    class.phpmailer.phpはいつもどおり下記のような感じです。
    iso-2022-jpのコード指定は、common.phpで直接行っていますので、
    ここで指定していなくても大丈夫です。


    --- class.phpmailer.php.old 2008-11-14 04:46:09.000000000 +0900
    +++ class.phpmailer.php 2008-11-14 04:48:10.000000000 +0900
    @@ -47,7 +47,7 @@
    * Sets the CharSet of the message.
    * @var string
    */
    - var $CharSet = 'iso-8859-1';
    + var $CharSet = 'iso-2022-jp';

    /**
    * Sets the Content-type of the message.
    @@ -60,7 +60,7 @@
    * "7bit", "binary", "base64", and "quoted-printable".
    * @var string
    */
    - var $Encoding = '8bit';
    + var $Encoding = '7bit';

    /**



    common.phpは、元ソースの処理の仕方に沿って変更して見ました。
    思っていたより、少ない変更で実現可能だと思います。
    多言語で使用する場合は、運用の仕方やアプリケーションの配置で対応する
    必要があると思います。
    本変更は、日本人向けにiso-2022-jp固定という考え方になります。
    ご利用環境が許されるならば、同じDBを複数のlimesurveyから利用する
    等して、多言語利用することも可能でしょう。


    --- common.php.bak 2008-11-14 04:31:47.000000000 +0900
    +++ common.php 2008-11-14 04:54:38.000000000 +0900
    @@ -2984,7 +2984,7 @@
    {
    $mail->SetLanguage('en',$rootdir.'/classes/phpmailer/language/');
    }
    - $mail->CharSet = "UTF-8";
    + $mail->CharSet = "iso-2022-jp";
    if (isset($emailsmtpssl) && trim($emailsmtpssl)!=='' && $emailsmtpssl!==0) {
    if ($emailsmtpssl===1) {$mail->SMTPSecure = "ssl";}
    else {$mail->SMTPSecure = $emailsmtpssl;}
    @@ -3052,15 +3052,18 @@
    $textbody = str_replace(""", '"', $textbody);
    if ($ishtml) {
    $mail->IsHTML(true);
    + $body = mb_convert_encoding($body, $mail->CharSet, auto);
    $mail->Body = $body;
    $mail->AltBody = strip_tags(br2nl(html_entity_decode_php4($textbody)));
    } else
    {
    $mail->IsHTML(false);
    + $textbody = mb_convert_encoding($textbody, $mail->CharSet, auto);
    $mail->Body = $textbody;
    }

    - if (trim($subject)!='') {$mail->Subject = "=?UTF-8?B?" . base64_encode($subject) . "?=";}
    + $subject = mb_convert_encoding($subject, $mail->CharSet, auto);
    + if (trim($subject)!='') {$mail->Subject = "=?iso-2022-jp?B?" . base64_encode($subject) . "?=";}
    $sent=$mail->Send();
    $maildebug=$mail->ErrorInfo;
    $maildebugbody=$mail->Body;



    スポンサーサイト

    theme : Linux
    genre : コンピュータ

    comment

    Secret

    ご案内
    google検索
    カスタム検索
    カテゴリ
    最新記事
    Amazon
    カテゴリー&RSS
    RSS新着情報

    plugin by F.B

    検索フォーム
    最近のコメント(コンパクト)
    データ取得中...
    リンク
    フリーエリア
    RSSリンクの表示
    カレンダー
    05 | 2017/06 | 07
    - - - - 1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 -
    ブックマーク
    Yahoo!ブックマークに登録
  • | このエントリーを含むはてなブックマーク
  • 月別アーカイブ
    最新トラックバック
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。