• 締切済み

チャットでログに書込まれる文字

FlashインターフェースのPHPで作られたチャットをレンタルサーバ上に設置しましたが、チャットログ(txtファイル)に書き込まれる一部の文字(表、予、申、能、十、ソなど)が、文字化けしてしまいます。 そのログテキストファイルを、リアルタイムにチャット画面に表示しているので、当然、文字化けで表示されます。 EUC-JPでソースコードを保存してもダメでした。 一番良いのは、ソースコード内で駆使して文字化けを直せるといいのですが・・・ しかし、ローカル開発環境で動作させたときは正常に表示されます。 また、他のレンタルサーバ環境だと、やはり正常に表示されました。 もちろん、これらは同じ設定(パーミッションなど)での結果です。 これはもう、レンタルサーバ業社のサーバ環境に問題があるんじゃないかと思いますが、どうでしょうか? しかし、レンタルサーバ業社にクレームつけても、はねつけられそうです。 サーバ環境でこういった現象が起きているとしたら、どういうことが考えられますか? また、どういった対処方法があるでしょうか? 困っています。。。 <業社のサーバ環境> Fedora Core 2 Apache2.0.50 PHP 4.3.10 (ionCube PHP Accelerator使用) Perl 5.8.3

  • THUBAN
  • お礼率76% (771/1002)

みんなの回答

  • 50100
  • ベストアンサー率28% (99/351)
回答No.1

チャットプログラムが吐き出すログの文字コードとチャットを設置しているページの文字コードを合わせることは不可能なのでしょうか?metaタグのcharsetの部分をチャットプログラムが使用している文字コードと一致させることが出来たら解決するように見えます。

THUBAN
質問者

お礼

ご回答ありがとうございました。 結果的に自己解決に至りました。 PHPプログラム内では、HTML文は一切記述してなく、よってmetaタグやcharsetも使ってなくて、ほとんどログテキストファイルのオープン~追加書込み~クローズ処理、変数渡しなどに終始しており、C言語のようなプログラムコードです。 Flash上のテキストボックスの変数 $message に代入された文字列を、PHPプログラムでログテキストファイルに書き出しているのですが、PHPプログラム内のコードで以下のように書いています。 $msg1 = str_replace ("\n"," ", $message); $msg2 = stripslashes ($msg1); echoで変数内の値を表示してデバッグしてみたところ、$message、$msg1は文字化けしていませんでしたが、$msg2で文字化けしていました。 $msg2の値をログテキストファイルに追加書き込みして、そのログテキストファイルを画面表示の変数に渡しているので、文字化けして表示していたというわけです。 stripslashes()関数は良くわからないのですが、この関数をコメントアウトして、$msg1をそのまま渡すことにしました。 その結果、文字化けは改善し、問題なく動作することとなりました。 わざわざアドバイス下さってありがとうございました。

関連するQ&A

  • チャット文字化け。シフトJISとサーバーと相性?

    いつもお世話になっています。 ステップサーバーでPHPのPbScriptチャットをミニリスト(URLをメンバー名で表示できる名簿スクリプト)をリンクして設置したいのですが、 よく文字化けを起こします。 ある方がおっしゃるには、サーバーと文字コードには相性があると言われたのですが、何を使っていいのかよくわかりません。 普通のHTML等は文字化けをしないのですが・・・。 どなたかシフトJISが文字化けしないサーバーをご存知ではないでしょうか。 また、シフトJISを文字化けしないコードに変更する方法があればご教授ください。 どうぞ、よろしくお願いします。

    • 締切済み
    • CGI
  • チャットシステムの文字化け

    お世話になります。 書籍などを参考にして、マイクロソフトWindows環境でチャットサーバと クライアントを作ってみました。サーバクラス群をリナックス(Fedora)に 乗せて起動させ、Windowsマシンからアクセスしてみると、一応チャットは できることはできたのですが、日本語がすべて文字化けしました。 サーバのソースの中に記述してある「さんが入室しました。」も、 クライアント側では「縺輔s縺悟・螳、縺励∪縺励◆」と表示されますし、 クライアント側から「こんにちは」と入力してもサーバからは 「ヘには。」になって返ってきます。 ところがウインドウズマシンにサーバクラス群を乗せて、チャット してみると、文字化けが起こらないわけです。 文字コードの関係でそのような事態が起こるのだと想像するわけですが、 どのようなコーディングをすればこれを防げるのでしょうか。 どなたか心当たりのある方、よろしくご教授ください。

    • ベストアンサー
    • Java
  • PHPの文字化け

    PHPでチャットを作っているのですが、どうしても、文字化けを起こしてしまいます。 文字化けを起こす場所は、入室するときの名前と、ログを読み出すときです。 それ以外は正常に動作しているように見えます。 文字化けする文字は、日本語だけで、アルファベットは問題ありません。 「テスト」と入力するとFirefoxでは「???鴻??」といった用になって、IEでは「・・"鴻ヨ」というように文字化けの仕方が違うようです。 文字コードはEUCです。 サーバーはwindowsでローカルサーバーを立てています。 サーバーの設定の問題でしょうか? アドバイスをよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPとMySQLで文字化けしてしまいます。

    いつもお世話になっています。 レンタルサーバー(サクラインターネット)で、 MySQL5.1を設定し、データベースを使ったwebサイトをアップしたのですが、 PHP部分の一部に文字化けしてしまいます。 文字コードは、htmlの上部で、UTF-8に設定しています。 システムは、PHPとMySQLで組んであります。 ローカルでは正常に動いているために、理由がわかりません。 どなたか解決方法があれば、教えて下さい。 宜しくお願いします。

  • 自分で書いたPHPスクリプトが、文字化けしてる

        テキストエディタでPHPのスクリプトを書いて サーバにアップしてブラウザで表示すると、文字化けしてしまいます。 手動でブラウザのエンコード設定をしなおすと正常に表示されるんですが ページ更新したらデフォルトで文字化けしてます。 PHPスクリプトを書いて、アップロードしてブラウザで表示する時に 文字化けしないようにするには、どうすればいいのでしょうか? 以下のコードは書いていますが、文字化けします↓ <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">    

    • ベストアンサー
    • PHP
  • 携帯からアクセスすると文字化けorページを表示出来ませんになります

    自分のマシンをサーバとして、PHPファイルに携帯からアクセスするとちゃんとページが見れてたのに、 レンタルサーバにサイトを移行したら、ページがキチンと表示出来なくなってしまいました。(日本語が文字化けしているか、リクエストされたページは表示できませんというメッセージが表示されます。) 文字コードはレンタルサーバに合わせEUCにしてあります。 レンタルサーバの会社に問い合わせたところ、 『携帯電話からのアクセスを有効にするためにはhtaccessファイルにてMIMEタイプの設定が必要になる場合がございます。』 という回答を得られました。この回答が正しいのかも分かりませんし、この意味が私には理解出来ません。 初心者の私にでも分かるような解決への手順をご教授頂けないでしょうか? 宜しくお願い致します。 #ちなみに、PHPのファイルはどのファイルでも携帯からアクセスすると、VODAFONEの場合は文字化けをし、AUの場合ですと、リクエストされたページは表示できませんになりました。 #レンタルサーバのバージョンはPHP4.3.10

    • ベストアンサー
    • PHP
  • PHPで文字化けします

    PHPでリンク集を登録、表示するプログラムを考えています。 登録、削除などは出来るのですが、表示部分が文字化けします。 登録内容をcsvに保存して、PHPから読み込んで表示する仕組みなのですが、csvから読み込む部分以外は正常に表示されますが、csvから読み込んだ部分が文字化けします。 サーバーは共用なので、管理者に問い合わせた所、サーバの通常文字コードはUTF-8との事、.htaccess ファイルで EUCへの変換方法を教えてもらったので、試しましたが、csv内に登録した時点で、文字化けした状態で記録されているようで、PHPファイルをsjisにして試しても、EUCにして試しても結果が同じです。 フォームからcsvに登録する時の文字コードを設定したりはできないのでしょうか。 また、公開されているスクリプトで相互リンク登録が出来るようなプログラムをご存知であれば、お教えください。

    • 締切済み
    • PHP
  • MySQL理由のわからない文字化けがあります。

    はじめてMySQLを利用してサイトを作ろうとしています。 ローカル環境ではMySQLは問題なく動作し、PHPと組み合わせることで必要な情報を必要な時に抜き出せるようになっていました。 しかしレンタルサーバーにまったく同じ内容で同じ状態(?)でデータベースをアップロードしたのに関わらず、文字化けしてしまいます。 文字コードはUTF-8で統一してるのですが、この場合文字コードは関係ないのでしょうか?何が原因かまったくわからないし、どんな情報をここに書いても良いかわからないくらい初心者ですが、よろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQL4.1系でPHPが文字化けしてしまいます

    海外からオープンソースのCMSをダウンロードしたのですが どうしも文字化けしてしまいます 以下のページが該当するページです http://www.be-emotion.com/pligg/upcoming.php 通常の記述は正常に日本語で表示されますが データベースからの文字は全て文字化けしております 原因はおそらく以下のページに書かれている事だと思います http://phpspot.net/php/pgMySQL4.1%8CnUTF-8%82%CC%8F%EA%8D%87.html しかし、対処法を見ても知識が無いため理解ができません 業者に頼もうと思ったのですが 修正費用に10万円かかると言われてしまい困っております MySQLの知識無しで何とか修正できませんでしょうか? あるいは安価で修正してくれる業者さんをご存じないでしょうか? サーバーはレンタルサーバーですのでいじれる部分は制限されています MySQL 4.1.21 PHP : 4.4.7 Apache : 1.3.27 よろしくお願いします

  • MySQL4.0 UTF-8 での文字化け

    こんにちは MySQL4.0 & PHP4.3 でHTMLは文字コードUTF-8で記述しています。 MySQL4.0の文字コード設定はレンタルサーバーのため不明ですが、 phpMyAdminで、utf-8にてデータを入力しました。 select文でMySQLのデータを拾ってくると文字化けはおきないのですが PHP経由でPOSTされた値を使ってinsertやupdateをかけると文字化けしてしまいます。phpMyAdmin上でも文字化けしていますが、phpMyAdminをEUC-JPにすると、入力した文字が文字化けせずに表示されます。 (が、すでに入っているデータは文字化けします、、、、) 入力画面は metaでUTF-8宣言をしており、ブラウザ(IE)上でエンコードを確認するとUnicode(UTF-8)になっています。4.1みたいにset names を指定するとうまくいくかな?と思ったのですが、やっぱり4.0なので結果は変わらず、でした。PHPのスクリプトそのものは、UTF-8で記述しているのですが、、、、 どういった項目をみなおせばいいのでしょうか?

    • ベストアンサー
    • MySQL