• 締切済み

PHP saveHTMLFileをしたら文字化けが

質問ですがloadHTMLFile()をしてDOM操作をしてsaveHTMLFile()をすると ファイル中の日本語がすべて文字化けしてしましました。しかしブラウザ上の表示では 初めからファイルに記述されていた日本語は文字化けしていたんですが、 DOM操作で挿入した部分や更新した部分の日本語は文字化けせずにきちんと表示されました。 例えば 『ジャンプ』 という単語がファイル中で使われていたとすると ファイル:ハンドラへ ブラウザ出力:ジャンプ のように置き換わり、 挿入すると ファイル:ジャンプ 出力:ジャンプ のようにきちんと表示されました。 これはどのように解決したらいいのですか? またファイル中でも日本語表示にしたいのですがそちらも教えて欲しいです。 ではよろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

noname#206842
noname#206842
回答No.2

ソースの文字コードはなんですか?・・・ ブラウザの文字コードを変更するか、ソースの文字コードを変更する。 どちらにしても、理解できてない!のでは?・・・

with_nature
質問者

補足

ソースの文字エンコーディングはUTF-8で指定してます。 ブラウザ側もUTF-8です。なので問題はないのではないかと思います。 しかし、saveHTMLFile()によって書き換えられた日本語部分だけはエンコーディング後に文字化けしてしまうのでそこを解決したいんです。ただ、dom操作で変更した日本語部分はUTF-8エンコーディングされて保存されていますので、その部分の日本語表示はきちんとされています。

関連するQ&A

  • PHP+MySQL文字化け問題

    いつもお世話になっております。 PHP初心者なんです。 PHP+MySQLでデータをデータベースに更新とか登録とか、データーの表示などの操作を行うとき、2つ問題で困っています。 一つ目:データーをブラウザーに出力する時、日本語は文字化けと表示されてしまいました。 二つ目:データーを登録する時、日本語が含まれている場合は登録できません。 問題はcharsetの設定のせいだと思いますが、どこから着手すればいいのか良くわからないですが。どなた教えて頂ければ幸いです。 宜しくお願い致します。

    • 締切済み
    • PHP
  • 日付が文字化けしてしまう

    はじめまして。 Open Office.orgの表計算ソフトCalcで株価のデータを集めているのですが、【外部データのリンク】でYahooファイナンスの時系列データを取得すると文字の部分が文字化けしてしまいます。 《 日付 始値 高値 安値 終値 出来高 調整後終値* 》         ↓ 《 ÆüÉÕ »ÏÃÍ ¹âÃÍ °ÂÃÍ ½ªÃÍ ½ÐÍè¹â Ä´À°¸å½ªÃÍ*  》 のように、また日付が 《2008年4月23日》    ↓ 《2008ǯ4·î21Æü》 のようになってしまいます。 セル書式をいろいろと変えてみたのですが、文字化けはまったくなおりません。 日付だけでも普通に表せるようにしたいのですが、なにか方法があるのでしょうか。 また、エクセルだとこのような文字化けは起こらないのでしょうか。 よろしくお願いします。

  • ブラウザーで日本語が文字化けする(PHP+MySQL)

    以下の現象に対処したいのですが、どうすればいいか弱っています。 (1) phpMyAdminからSQLでテーブルに日本語を挿入して、 PHPプログラムでブラウザー表示すると文字化け(?????で表示)する。 phpMyAdminでこのデータを表示すると、正しく日本語表示されている。 (PHPプログラム内で直接日本語データを記述して挿入しても同じ現象となる) (2) ブラウザーで日本語を入力してPHPプログラムで受取りMySQLに出力して、 そのデータをPHPプログラムでブラウザー表示すると問題なく日本語が表示される。 phpMyAdminでこのデータを表示すると、文字化け(ぐじゃぐじゃの文字で表示)する。 利用しているホスティングサービスは、お名前・COMのVPSプラン 実行時の環境 MySQL: サーバのバージョン: 5.0.77 サーバ: Localhost via UNIX socket MySQL の文字セット: UTF-8 Unicode (utf8) MySQL の接続照合順序: utf8_unicode_ci PHP : PHP5を使用 phpプログラムは、UTF-8で記述。 出力されるHTMLの文字セット <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    • ベストアンサー
    • PHP
  • PHPとMySQLの文字化けに関して

    PHPとMySQLの文字化けに関して PHPとMySQLを利用したホームページ作成の勉強をしている初心者です。 現在、レンタルサーバーをお借りして、作成したページを表示させようとしておりますが、 文字化けで悩んでおり、解決策をご教授いただきたいと思います。 まず症状についてですが、phpMyAdminを利用してデータを挿入すると、 phpMyAdminでは文字化けしませんが、作成したホームページでは文字化けが発生します。 (???が続くような文字化けです。) 一方、データ挿入用のページを作成し、そこから挿入を行うと、 phpMyAdminでは文字化けが発生しますが、 ホームページ上では一応日本語表示されます。 (phpMyAdminでの文字化けは、こんな感じです。 ã?TMã??ã?¬ã?¢ã??ã?? また、上手く表示できない物もあります。) 希望としては、全ての文字コードをutf-8に統一させたいのですが、 データベース関連の文字コードの設定が出来ず、解決が出来ません。 以下、現在の状況と、素人ながら試してみた点などについて記載します。 (情報の不備などございましたら、お手数ですがご指摘ください。) --------------------------------------------------------------- ■phpinfo関連 □PHP Version 5.1.6 □MySQL Client API version 5.0.82sp1 □default_charset Local Value UTF-8 Master Value no value ■phpMyAdmin関連 □phpMyAdmin Version 2.11.10 □status の結果 #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'status' at line 1 □SHOW VARIABLES LIKE 'char%'; の結果 Variable_name Value character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server latin1 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ □set character_set_server = utf8; の結果 SQL は正常に実行されました (クエリの実行時間 0.0002 秒) と出ますが、変更されません。 □phpMyAdmin上のデータベースの表 データベース 照合順序 DB1 utf8_general_ci DB2 utf8_general_ci information_schema utf8_general_ci 合計: 3 latin1_swedish_ci ■.htaccess関連 .htaccessを設定してFFFTPでアップロードしても、表示されません。 また、別名ファイルでアップし、アップロード先で名称変更すると、消えてしまいます。 ■その他 ファイル作成にはTeraPadを利用し、 UTF-8Nにて保存しております。 ホームページのメタタグには、 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> というものを設定しております。 php.iniやmy.cnf の設定で解決するとの情報もあり、 当該ファイルを探してみましたが、見つけることができませんでした。 --------------------------------------------------------------- なお、レンタルサーバーでの利用では、 .htaccessやphp.ini、my.cnfの設定が出来ない場合もあるそうですので、 そのような場合、どのような解決法があるのでしょうか? どうぞよろしくお願いいたします。

    • 締切済み
    • PHP
  • Safariで文字化け

    過去にも似たような質問がありましたが、Safariの文字化けについてです。 「環境設定」の「表示」が「日本語(ShiftJIS)」になっているにもかかわらず、たびたび文字化けします。 多くは「デフォルト」のままで大丈夫なのですが、ときには同じサイト内でも別のページにジャンプした途端、文字化けします。 その都度、「表示」から、いくつかある日本語表示形式を試すのは、ストレスです。 IEの場合、文字化けはまず起こりません。 それでも、Macユーザーの多くは、Safariをお使いのようなのが、文字化けに困りませんか? 何か解決法があるのですか? また、多少の不便をしても使用するのなら、IEにないメリットがあるのでしょうか? いっそのこと、IEをメインに使おうかとも考え中です。 その場合、メール本文中のURLをクリックして起動するブラウザソフトを変更するには、どうすればよいでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Mac
  • phpファイルで文字化け

    お世話になります。 PHP4で作成しています。 あるPHPファイルが読み込まれたとき、 パラメータが引き渡されているか確認し、 引き渡されていない場合には、 別のページにジャンプするように以下のように作成しています。 if ($aaa==""){ header("Location: aaa.php" ); }else{ header("Conten-type: text/html; charset=Shift_JIS"); } 通常、aaa.phpファイルは文字化けしないのですが、 このファイルから自動的に飛んだときに 文字化けで表示されてしまいます。 ブラウザの更新ボタンをクリックすると、 きちんと表示されるようになります。 文字化けした時のエンコードを見ると 西ヨーロッパ言語になっています。 aaa.phpファイルでも、 charset=shift_jis と指定しているのですが、 何が原因でしょうか? よろしくお願いします。

    • 締切済み
    • PHP
  • cookie から取り出すと文字化け

    perl でクッキーに書き込んだ文字を、JavaScript で取り出して表示させると文字化けしてしまいます。 name = getCookie("NAME"); document.write(name); ・・・とやると、「 :::‚ ‚¨‚&cent;‚&sup3;‚&ntilde; 」と、 日本語の名前が化けて表示されてしまいます。 アルファベットだと問題がないのですが、 なにか変換のようなものが必要なのでしょうか。

  • CGIでprint出力時に文字化けします・・・

    test.cgi (UTF-8)--------------------- #!/usr/bin/perl use utf8; print "Content-type: text/html;charset=utf-8\n\n"; open FILE, "test.txt"; while (<FILE>){ $read_list[$i]=$_; $i++; } print "あ=$read_list[0]<BR>\n"; print "a=$read_list[0]<BR>\n"; exit; ------------------------------- test.txt (UTF-8)-------------- テスト用投稿 ------------------------------- 上記の2種類のファイルを用意し実行したところ、下記の結果になります。 ↓-----------------------------↓ あ=&iuml;&raquo;&iquest;&atilde;ƒ†&atilde;‚&sup1;&atilde;ƒˆ&ccedil;”¨&aelig;Š•&ccedil;¨&iquest;<BR> a=テスト用投稿<BR> ↑-----------------------------↑ 文字が正常に表示されないのですが、外国語?みないなまったく読めない文字になってしまいます。 色々試してみたのですが、print="";の中に英数以外が入っていると文字化けするみたいです。 あ=テスト用投稿 a=テスト用投稿 としたいのですが、まったく解決方法がわかりません。 perlのバージョンは5.6.1です。 ファイルはすべてUTF-8で保存しています。 ブラウザもエンコードはUTF-8になっています。

    • 締切済み
    • CGI
  • php 文字化け

    MAMPをインストールして、統合開発環境であるAptanaを使用してphpのプログラミンを行いたいのですが、 日本語を出力すると文字化けしてしまいます。 このページ http://sevenbluesea.blog101.fc2.com/blog-entry-19.html を参考にして、php.iniを書き換えて保存し直し、AptanaとMAMPを再起動をしても文字化けは直りませんでした。 実行したいソースのテキスト・ファイル・エンコードはSJISで、 これをUTF-8にすると、ソース自体が文字化けを起こしてしまいます。 ソース自体の記述をUTF-8にしないといけないのでしょうか? 何か解決案や参考ページなどを教えていただけると嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • UTF-8ファイルを文字化けなく表示したい

    Windows7+IE8(version8.0.7600)を使っています。 UTF-8で作成したファイルをブラウザで開くと日本語が文字化けするため、タスクバーの表示--エンコードでその都度シフトJISに転換する必要があり、面倒です。 UTF-8のファイルを自動的に文字化けしない日本語で表示させる方法はないでしょうか?