![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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でcookieがうまく保存されない
-
掲示板を作成しておりアップロ...
-
フォームで戻った際に入力済み...
-
ワードプレスサイト PHP8.0.25...
-
PHPで画像の渡しが上手く行きま...
-
「基礎からのMySQL 第3版 Kindl...
-
PHP MySql 画像を取得
-
phpの imap_search で漢字コード
-
a href リンクタグでだけで 送...
-
EC-CUBEをeclipseからコンパイ...
-
PHPのエラーの解消法について教...
-
PHPについて。
-
アマゾンのような評価の星を選...
-
PHP8を使うと、大量のWarningが...
-
SFTPなどは使わないホームペー...
-
ファイルアップロードに関して...
-
Q&Aサイトを作成していてURLの...
-
アップロード画像数でCSSを分け...
-
アップロードファイルの数に応...
-
ファイルアップロードの上限を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字集合範囲外の文字とパーセ...
-
(mysql_set_charset)PHPでINSER...
-
EUC-JPのサイトをSHIFT-JISに変...
-
EUCからshift_jisに書き換えに...
-
PHPで「®」や特殊文字のエスケープ
-
PHPで韓国語の表示がうまくいき...
-
携帯の文字化け
-
PHPでセッション導入後に初めて...
-
mysql→EUC-JP、php→UTF-8の時の...
-
サーバーにアップすると文字化...
-
文字コード変えたら、fopenでき...
-
サーバーにアップすると文字化...
-
ファイルの文字コードを調べる...
-
wordpressがMySQLに日本語デー...
-
フォームからPOSTされた値をXML...
-
海外で作成されたPHPスクリプト...
-
フォーム入力のエンコーディン...
-
HTTPヘッダはメタタグにも記述...
-
MySQL+PHPサイトでSJISからEUC...
-
自作cgiのページがIE10で文字化...
おすすめ情報