• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[PHP+MySQL]DBがEUC,出力はSHIFT-JIS・・・どうクリアするか?)

[PHP+MySQL] EUCで動作しているMySQLのデータをShift-JISで表示させる方法

このQ&Aのポイント
  • PHPとMySQLを使用して携帯向けのコンテンツを作成している場合、MySQLがEUCで動作しているため、Shift-JISで保存した情報が文字化けしてしまうことがあります。しかし、サーバーの環境上でMySQLの文字コードを変更することはできません。そのため、エンコードコマンドを使用してもうまくいかない場合は、SQLで取得した行を一括でエンコードする方法を試すことができます。
  • MySQLがEUCで動作しているため、PHPでShift-JISで保存した情報が文字化けしてしまう場合、サーバーの環境上でMySQLの文字コードを変更することはできません。代わりに、SQLで取得した行を一括でエンコードする方法を試すことができます。エンコードコマンドを使用してもうまくいかない場合は、他の方法を試してください。
  • PHPとMySQLを使用して携帯向けのコンテンツを作成している場合、MySQLがEUCで動作しているため、Shift-JISで保存した情報が文字化けしてしまうことがあります。サーバーの環境上でMySQLの文字コードを変更することはできませんが、SQLで取得した行を一括でエンコードする方法を試すことができます。エンコードコマンドを使用してもうまくいかない場合は、他の方法を試してください。

質問者が選んだベストアンサー

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.3

実際にやっているのですが、 携帯用の出力HTMLの全てを変数にいれて、 最後に print mb_convert_encoding($html, "SJIS", "EUC"); でエンコードしています。 他の方法を試しましたが、なぜかSJISを吐き出してくれなかったので・・・

その他の回答 (3)

  • taaaaaaa
  • ベストアンサー率38% (31/80)
回答No.4

PHPはサーバによって設定などで利用制限があるようです。 ちなみに今利用しているサイトは、 文字コードを指定する場合、PHP文の一番上に <? header("Content-type: text/html; charset=Shift_JIS"); ?> と記述。 とあります。 他のサイトでも一番上に~~~を記述。 PHPの拡張子は.cgiにすべし。 などありました。 サイト運営会社へ問い合わせてみるしかないように思います。 mb_convert_encodingが使えるかどうかも含めて。

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がると申します。単純に文字コードを合わせればよいと思うのですが、いかがでしょうか? > PHPをShift-JISで保存しても という発言からすると、コードの中にHTMLが書いてあるかと思うので(一応念のため。もし業務で作られているなら、コード中にHTMLがあるのはお勧めも歓心もできません)。 DBから取得した情報を、一度 $shift_jisに変換されたデータ = mb_convert_encoding(MySQLで取ってきたデータ , "SJIS", "auto"); という感じで文字コード変換すればよろしいかと思います。

  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

やり方はいろいろあるので1例です。 以下のようにしてやれば、このphpがEUC-JPであっても 出力をsjisに出来ますよ。 <?php mb_http_output('SJIS'); ob_start('mb_output_handler'); echo ' <html> <head> <title>あああmobile</title> </head> <body> いうえお </body> </html> '; ?>

関連するQ&A