EUC-JPのサイトをSHIFT-JISに変換して表示したいのですが、うまくいきません。
どのへんが間違っているのか教えていただけないでしょうか?
<?php
header("Content-Type: text/html; charset=Shift_JIS");
//EUC-JPデコードされたURL
$url = "http://www.hogehoge.com";
//ファイルとして読み込む
$fileUrl = @readfile($url);
//エンコードする
$encUrl = urlencode($fileUrl);
//SHIFT-JISに変換する
$newUrl = mb_convert_encoding($encUrl, "Shift_JIS", "auto");
//表示する
echo $newUrl;
?>
No.1ベストアンサー
- 回答日時:
どういう目的で変換したいかは分かりませんが、
> $encUrl = urlencode($fileUrl);
これは何の為にやっているのでしょうか?
読込んだテキストをURLエンコードする意味が分かりません。この部分は不必要かと思います。
また、mb_convert_encodingで元エンコードを"auto"としていますが、EUC-JPと分かっている場合は"EUC-JP"と明示しておいた方が間違いありません。
最終的に出力される文字コードがSJISとなったとしても、元のホームページのヘッダ部分等に文字コード設定があればそれも変更しないとブラウザが混乱します。
例えば
$str = str_replace("EUC-JP","Shift-Jis", $str);
のような変換をする必要があると思います。
参考まで。
すみません、いろいろ勘違いしていたようです。
やりたいことは、EUC-JPでデコードされたhtmlソースファイルからいろいろ情報(文字列)を抜きだしてそれを利用したかったのですが、「ケセクヘタ・/td>ネッヌ菘・br>11:10ネッヌ菘」のように文字化けしてしまって抜き出すことができません。
そこでEUC-JPをSHIFT-JPにデコードしなおせば文字化けがなくうまく抜き出しができると思ったのです。
>元のホームページのヘッダ部分等に文字コード設定があればそれも
確認しましたがそのhtmlのヘッダには文字コード設定が書いていませんでした。
またcssも使っていないタグだけの記述で構成されたhtmlです。
No.3
- 回答日時:
いろいろ突っ込みどころ満載ですが、
とりあえずurlencodeの使い方が間違っています。
変数名も誤解の元となっているでしょう。
それとurlencodeは推奨されていません。どうせ使うならrowurlencode使いましょう。
No.1の方も言っているとおり、urlencodeを排除すれば問題ないと思われます。
URLエンコードと表示される文字コードは別物です。
直接関係はないのですが、
httpの呼び出しをphpで行うのは非効率です。
第三者のサーバへのアクセスはボットによるクロールと取られる可能性もあります。
内部処理の場合はできるだけftp,scpなどの環境を整えることをお勧めします。
ご説明ありがとうございます。
>No.1の方も言っているとおり、urlencodeを排除すれば問題ないと思われます。
これでも文字化けしてしまっています…。もう少し勉強してみます。
>httpの呼び出しをphpで行うのは非効率です。
>第三者のサーバへのアクセスはボットによるクロールと取られる可能性もあります。
>内部処理の場合はできるだけftp,scpなどの環境を整えることをお勧めします。
そうなのですか。いろいろ問題もあるのですね。検討してみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- その他(プログラミング・Web制作) sedの動作 2 2022/10/10 13:38
- その他(IT・Webサービス) MacとWindows Google検索した時のURL表示の違いについて 1 2022/11/17 10:38
- ビデオカード・サウンドカード ビデオカードを交換するのですがその手順について教えて下さい。 3 2023/02/14 12:13
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- Java VScodeのターミナルの文字化けについて 1 2022/09/27 22:19
- C言語・C++・C# S-JIS → JIS コード変換するには 3 2023/02/09 23:55
- PHP php ログイン 1 2022/11/01 00:24
- モニター・ディスプレイ プラズマディスプレイ (PDP-507CMX-JP)に2in1PCの映像と音声を表示させたいです。 1 2023/08/18 12:04
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでセッション導入後に初めて...
-
文字化けについて
-
UTF8のページでIEがシフトJISを...
-
携帯の文字化け
-
wordpressがMySQLに日本語デー...
-
EUC-JPのサイトをSHIFT-JISに変...
-
フォントの色を変えるには?
-
PHPのif文でその処理を途中で抜...
-
リンク先を隠す方法はないでし...
-
copy() で属性保存
-
onedrive にexcelファイルをア...
-
PHP session_destroyとsession...
-
「クラス関数」「メンバ関数」...
-
別PHPファイルに変数を渡す
-
VBSの「MsgBox」について
-
3つ以上の論理積は利用可能なの...
-
「@$変数」の「@の意味は?」
-
CFileDialogの最初のディレクト...
-
BASP21メール送信(SMTP-AUTH認...
-
htmlをphpにするにあたってデメ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EclEmmaレポートのエクスポート...
-
PHPで韓国語の表示がうまくいき...
-
PHPExcelバッファへの書き込み...
-
文字コード変えたら、fopenでき...
-
HTTPヘッダはメタタグにも記述...
-
Eclipseで文字化け
-
csvファイル出力時に文字化けし...
-
phpで動的タイトル
-
文字集合範囲外の文字とパーセ...
-
phpログファイルの文字化けにつ...
-
PHPで「®」や特殊文字のエスケープ
-
phpフォームで文字化け
-
Google Chromeで文字化け
-
発生した文字化けに対する対処
-
サーバーにアップすると文字化...
-
GEEKLOG(ギークログ) 文字化け
-
PHP time()に関しての質問です
-
文字化けについて
-
UTF8のページでIEがシフトJISを...
-
batファイルでうまく動かないプ...
おすすめ情報