文字化けにどう対処したら・・・PHPをShift_JISで書いて、MYSQLに格納しました

このQ&Aのポイント
  • 文字化けに悩んでいる方への対処方法をご紹介します
  • PHPとMYSQLで文字化けの問題に直面した場合、どのように対処すればよいのでしょうか?
  • Shift_JISで書かれたPHPコードを使い、MYSQLにデータを格納する際の文字化け問題に対処する方法を紹介します
回答を見る
  • ベストアンサー

文字化けにどう対処したら・・・PHPをShift_JISで書いて、MYSQLに格納しました

最初からEUCで書けばよかったのでしょうが? 知識が無くて、全部Shift_JISで書きました。 (文字化けをなめていました。。) 結構、文字化けすることが多くて修正するしかなくなってきましたが 全部書き直さずに改良するにはどうしたらいいでしょうか? PHP Version 4.4.2 MYSQL 4.0.26 にデータはきちんとShift_JISで入っているようです。 **phpmyadminでShift_JISで表示させるとちゃんと表示します、  それ以外で表示させると文字化けします。 フォームを使って、MYSQLに格納して 後で、呼び出して表示するだけです。 どうか宜しくお願いいたします。 相変わらず、要領の得ない質問でスミマセン。

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

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

  • ベストアンサー
  • kaz33
  • ベストアンサー率60% (20/33)
回答No.1

PHPを使って、MySQLからデータを抽出し表示させると文字化けするということでしょうか? mb_convert_encodingなどを使って、文字コードを変換させてみてはどうでしょうか?

kiyomidesuyo
質問者

お礼

ありがとうございました! 思い切ってデータを全部eucにして 表示と入力を変換するようにしました。 *携帯からの閲覧、書き換えがあるのでsjisから変えられず。。

関連するQ&A

  • 文字化けについて

    PHP5 MySQL5 phpMyAdmin の3種でシステム構築を行っていました。 この度新しいPCで環境を設定した所、文字化けが起きてしまいました。 構築した以前のローカル環境と各バージョンや設定は同じはずなのですが、文字化けに悩まされています。 具体的には、MySQLはEUCでPHPはShift_JISにて構築しています。 システムの構造は、Shift_JISをMySQLに挿入する際はEUCに変換して格納しています。 文字化けは、phpMyAdminでは正常にみれるものがシステムをブラウザから確認すると日本語が全て???に文字化けしてしまっています。 そこで、phpMyAdminからDBの文字コードをlatin1にした所、今度はphpMyAdmin上で文字化けし、ブラウザ上からは正常にみえるといった状態です。 数日格闘しているのですがお手上げ状態です。 どなたかアドバイス頂ければ幸いです。

    • 締切済み
    • PHP
  • MySQL→PHPでデータリストを作ると文字化けが…

    MySQL→PHPでデータリストを作ると文字化けが起こるのですが、なぜでしょうか?METAはshift_jisで統一しているので問題ないはずですが、文字化けします。phpmyadmin上では文字化けせずに表示されるのでデータベース登録までは問題ないと思うのですが… よろしくお願いします。

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

    登録フォームを作成し、入力した内容でDBに追加を行うなかで、PHPmyadminで実際に見てみると文字化けしています。 レンタルサーバ(OS:linux) (1)登録フォーム(shift_jis) ↓各値を渡す (2)確認ページ(shift_jis) ↓各値をmb_convert_encoding(shift_jisに変更) (3)追加 すると文字化けします。 以前、cgi-lib.plを用いてperlで書いていたものは、 文字化けしていません。 どこがおかしいのでしょうか? ちなみに (1)登録フォーム(euc-jp) ↓各値を渡す (2)確認ページ(euc-jp) ↓各値をmb_convert_encoding(euc-jpに変更) (3)追加 としても文字化けしています。 (DBだけでなく、ページ全体も)

    • ベストアンサー
    • PHP
  • HTML+PHP→MySQLへデータ格納時の文字化け

    HTMLでTEXTAREAフォームを作成し、 入力された文字をPHPでMySQLデータベースにデータを格納して 任意のWEBページで参照できる様にしたいのですが 特定の文字列だけ文字化けしてしまいます。 文字コードは全てSJISで行っているのですが データを受け渡しする際、変換されてしまうのでしょうか? phpMyAdminで文字化け部分を修正すると問題なく表示されます。 「予算」  →「落Z」 「予約時間」→「蘭ロ條ヤ」 どなたか解消法を教えて下さい。 よろしくお願いします。

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

    MySQLとPHP、phpMyadminで開発をした際に、phpMyAdminから 登録した値が、PHPで表示させると文字化けしてしまいます。 手当たり次第環境を調べてみましたが、どうしても原因が掴め ません。 わかる方がいらしたら是非教えて下さい。 《環境》 PHP   php-5.0.2 MySQL  mysql-4.0.21 phpMyAdmin phpMyAdmin 2.7.0 です。 MySQLは、  [mysqld]   default-character-set=sjis  [mysql]   default-character-set=sjis  [mysql-dump]   default-character-set=sjis で設定してあり、 phpMyadminは、  $cfg['DefaultLang'] = 'ja-sjis'  $cfg['DefaultCharset'] = 'SHIFT_JIS' と設定してあります。 もちろんPHPも'SJIS'ですが、、、 本当に困っています。 教えてください。

    • ベストアンサー
    • MySQL
  • PHP+MYSQLでの文字コードによる文字化け

    お世話になっております。 PHP+MYSQLの構成でDBに登録、DBから参照→表示といったアプリケーションを作っているのですが質問があります。 文字コードを意識せずに、”Shift-JIS”でPHPやhtmlのコードを書いていたのですが、仕様上問題があることに気づいたので今まで書いたソースの文字コードを”EUC-JP”に変更することになりました。 フリーで複数のテキストファイルをShift-JIS→EUCに一括変換するソフトがあるので、そのソフトを使ってEUCの文字コードに変換したところ、ソース中の日本語(全角)が文字化けしてしまいました。 #どの変換ソフトを使っても同様の結果になります ブラウザー上で表示すると問題ありませんが、今後ソースをいじるときに非常に不便です。目的としては、「ソースの文字コードをShift-JISに変換」かつ「ソース内の日本語(全角)の文字化けを起こさない」方法をご存知の方は是非ご教授お願い致します。

    • ベストアンサー
    • MySQL
  • php,mysqlでの文字化け(機種依存文字)について

    機種依存文字「○いち」「(株)」の文字化けがどうしても解消できません。 phpソースに機種依存文字をコーディングした場合には正しく表示されますが、外部より入力した文字をMySQLに格納し、phpにてデータを取り出し表示すると文字化けします(phpmyadminでの表示時点で文字化け)。 「mb_convert_encoding」等にてテストしてみましたが、結果は変わりませんでした。また、phpmyadminにて直接MySQLに入力しても、phpmyadminでもブラウザ(php表示)でも文字化けしてしまいます。 文字コードについて知識が浅く、各環境はデフォルト状態です。 「mbstring.internal_encoding = EUC-JP 」にも関わらず、「character_set_client = utf8」「character_set_results = utf8」としているのに、機種依存文字以外は問題無く表示されております。 1.機種依存文字化けの対応方法 2.正しい環境設定方法(文字コードの統一を行うべき等) ご教授のほど、何卒宜しくお願い致します。 <<環境>> ・windows xp ・UNIX socket 4.1.22 ・phpMyAdmin - 2.11.1 ・Mysql 4.1.21 ・PHP 4.4.7 【Mysql】 character_set_client = utf8 character_set_connection = utf8 character_set_database = utf8 character_set_results = utf8 character_set_server = ujis character_set_system = utf8 【my.cnf】 [client] default-character-set = ujis [mysqld] default-character-set = ujis [mysqldump] default-character-set = ujis 【php.ini】 mbstring.language = Japanese mbstring.encoding_translation = On mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.internal_encoding = EUC-JP mbstring.detect_order = auto mbstring.substitute_character = none; ※phpソースには「charset=euc-jp」を記載

    • 締切済み
    • PHP
  • Fedora7+PHP+MySQLで文字化け

    すみません、表題にてPHP側でCSVファイルをINSERTで登録していますが、どうしても文字化けしてしまいます。 Fedoracore7 PHP5.2.2 MySQL5.0.37 phpMyAdmin2.11.0 <php.ini> mbstring.internal_encodein = EUC-JP mb・・・output = EUC-JP <my.cnf> [client]、[mysqldump]、[mysql]ともに default-character-set = ujis [mysqld] default-character-set = ujis skip-character-set-client-handshake init-connect = SET NAMES ujis 色々と調べてEUC-JP(ujis)で統一してるつもりなのですが・・・ phpmyadminでは文字化けは解消してまして、こちらでレコードを登録すると、PHP側では文字化けなしで表示されます。 PHP側での書き込みは、 mb_convert_encoding($val,"EUC-JP","SJIS") で行っていますが、文字化けが解消されません。 どなたかご教授頂ければと思い、質問させて頂きました。 宜しくお願いします。

    • 締切済み
    • PHP
  • MySQL接続データ表示で文字化け

    Dreamweaverを使って、MySQL接続でデータ表示を試みているのですが、日本語が文字化けしてしまいます。 phpMyAdminでデータベース表示したときは問題なく表示されます。 文字コードは,phpMyAdmin、DWともeucで設定しています。 解決するには、どのような手段が考えられますか?よろしくお願いします。 バージョン:MySQL 4.0.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

専門家に質問してみよう