MySQLレコードの文字化けについて

このQ&Aのポイント
  • MySQLレコードの文字化けについての質問です。DBサーバ上のLinuxのGNOME端末ツールから接続し、DML文(INSERT)をした際に、日本語の値が化けて格納されてしまう症状についてお尋ねします。
  • DBサーバの文字化け問題についての質問です。英語の値は問題なくWEB上に表示されておりますが、日本語の値はWEB上では化けて表示されており、DB上の値が化けて格納されたためと思われます。
  • MySQLの文字化け問題について質問させていただきます。DBサーバ上のLinuxのGNOME端末ツールでDML文(INSERT)を実行する際に、日本語の値が化けて格納されてしまう症状が発生しています。
回答を見る
  • ベストアンサー

MySQLレコードの文字化けについて

皆さんの同様の質問内容を全て拝見しましたが、理解できず質問させていただく経緯になりました。 何度も同じ質問掲載で大変申し訳ありません。 ▼現在の環境です。 Linux ES4 Apache2.0 PHP4.4.4 MySQL 4.1.12 2台のサーバで、WEBとDBに分けて構成しております。 WEBサーバのPHPからはDBサーバのMySQLへ接続可能となり、データも表示されます。 今回問題になっていいるのは、DBサーバ上のLinuxのGNOME端末ツールから接続し、DML文(INSERT)をした際に、日本語の値が化けて格納されてしまう症状に陥っております。 英語の値は問題なくWEB上に表示されております。日本語の値はWEB上では化けて表示されております。DB上の値が化けて格納されたためと思っております。 ▼WEBサーバ側のPHP.iniです。 mbstring_language=Japanese mbstring_internal_encoding=EUC-JP mbstring_http_input=auto mbstring_http_output=pass mbstring_encoding_translation=on mbstring_detect_order=auto mbstring_substitute_character=none ▼DBサーバ側のmy.cnfです。 [mysql] default-character-set=sjis [mysqld] default-character-set=sjis [client] default-character-set=sjis [mysqldump] default-character-set=sjis ▼SHOW VARIABLES LIKE 'char%';を実行した結果 character_set_client sjis character_set_connection sjis character_set_database ujis character_set_results sjis character_set_server sjis character_set_system utf8 同じような質問で大変申し訳ありませんが、どなたか御教授願えませんでしょうか。よろしく御願いいたします。

  • MySQL
  • 回答数1
  • ありがとう数1

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

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

実際の書き込んでいるPHPと読み込んでいるPHPでどうにでもなるのですが、 とりあえず character-set を ujis にしてみればなるかもしれません。

chobi55
質問者

お礼

お返事ありがとうございました。返答遅れてもうしわけありません。早速ujisにしてみたのですが、依然DBに日本語データが登録できません。MySQLのバージョンを落とすしかないでしょうか。

関連するQ&A

  • MySQLから送られて来たデータの文字化け

    いつもお世話になっています。 今回、phpでmysqlに接続したのですが、mysqlから引っ張ってきたデータが文字化けして困っています。(日本語のみ文字化け) 使っている環境は以下の通りです。 IIS6.0 PHP 5.0.4 MySQL 4.1.22 IISは、CGI、ASP、ISAPIを許可にしています。(.phpを見れるようになっています。) php.iniのmbstringの設定は以下のようになっています。 1105 mbstring.language=Japanes 1110 mbstring.internal_encoding = EUC-JP 1113 mbstring.http_input = auto 1117 mbstring.http_output = SJIS 1124 mbstring.encofing__translation = On 1128 mbstring.detect_order = auto 1132 mbstring.substitute_charecter = auto 1133 mbstring.script_encoding = EUC-JP my.iniの設定は以下のようになっています。 [mysql] default-character-set=sjis [mysqld] default-character-set=sjis skip-character-set-client-handshake mysqlでコマンドで確認したところ以下のような文字設定になっています。 mysql> show variables like "char%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | sjis | | character_set_connection | sjis | | character_set_database | sjis | | character_set_results | sjis | | character_set_server | sjis | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ character_set_systemがutf-8になっているのが気がかりですが、 こんな感じで設定しています。 mysql内では文字化けしていないのに、 phpで呼び出した時に文字化けするのでしょうか? どなたかご教授よろしくお願いします。

    • ベストアンサー
    • PHP
  • MYSQLから抽出したクエリの結果が文字化けします。

    PHPの文字化けの件でお伺いしたいのですが サーバーOS:FreeBSD PHP4.3.11とMYSQL4. 1. 11を利用してWEBアプリを作成しよう としております。 文字化け対策として、my.confに以下の文を追加しました。 [client] default-character-set= sjis [mysqld] default-character-set= sjis character-set-server = sjis [mysqldump] default-character-set= sjis [mysql] default-character-set= sjis mysql再起動後、telnetにて、データベースの内容を 確認したところShiftJISの文字コードでで無事に確認できました。 そこでPHPからこのデータを抽出しようと考え select * from table where column=12345 のような形で日本語のデータをPHPで表示させようとしましたが 日本語のデータのところが????と表示されてしまいうまく表示させることが 出来ません。ここでhttpd.conf に AddCharset SJIS .sjis と追加してしても症状が改善されません。 php.iniを編集すればうまくいくのかと考え、php.iniを確認したところ [mbstring] ;mbstring.internal_encoding = EUC-JP ;mbstring.http_input = auto ;mbstring.http_output = SJIS ;mbstring.detect_order = auto ;mbstring.substitute_character = none; PHPとMYSQLと双方に原因が考えられますが、telnet上ではきれいに 表示されることを考えPHPの項目にてお伺いいたしました。 となっておりました。他に何か原因やチェックしなければいけないところ 等ございましたらご教授ください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP+MySQL 4.1.20における文字化け

    お世話になります。 現在、学内に実験的に設置されているサーバーを使って、そこに 「phpMyFAQ(Ver.2.0.3)」を入れて動かそうと試みています。 phpMyFAQのインストールは済んだのですが、いざ使ってみようと思って カテゴリ追加等をしようとすると、日本語が文字化けして「???????」と いうような状態になります。 きっと文字コードの設定に問題があり、php.iniやmy.cnf等の設定を変える 必要があるのでしょうが、サーバーは共用利用しているものであり、他の 利用者へ影響が出てしまうため、変更が困難です。 また、私自身がまだphpやMySQLに詳しくないため、どこを改善すればよい のかがわからずに困っております。(.htaccessをつくっていろいろと記述 してみたりしたのですが、文字化けは解消されていません。) もし何かアドバイス等ありましたらご教示いただけませんでしょうか。 よろしくお願いいたします。 MySQLのバージョン:4.1.20 PHPのバージョン :4.3.9 <MySQL> character_set_client ujis character_set_connection ujis character_set_database ujis character_set_results ujis character_set_server ujis character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ [mbstring] mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none;

  • xamppのMySQLの文字化け

    いつもお世話になっております。 xamppをインストールし、開発を行っております。 formでsubmitし、DBに登録すると文字化けを起こします。 MySQLは下記項目を追加しました。 C:\xampp\mysql\bin\my.ini -------------------------------------------------- [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake character_set_server=utf8 init-connect=SET NAMES utf8 (ここに default-character-set = utf8 を追加するとMySQLが起動しなくなります。) [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 php.iniは下記のように設定してあります。 php.ini -------------------------------------------------- mbstring.detect_order auto mbstring.encoding_translation Off mbstring.func_overload 0 mbstring.http_input UTF-8 mbstring.http_output UTF-8 mbstring.http_output_conv_mimetypes ^(text/|application/xhtml\+xml) mbstring.internal_encoding UTF-8 mbstring.language Japanese mbstring.strict_detection Off mbstring.substitute_character no value 日本語が正しく登録されていれば、表示は正しくされます。 おかしな部分、足りない部分等ありましたら、ご教示ください。 よろしくお願いいたします。 [環境]  MySQL:5.5.8  PHP:5.3.5  xampp:1.7.4

    • ベストアンサー
    • 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
  • Linuxサーバ接続とWindows単独で開発時のphpの文字コード

    FC4サーバとwindows機をハブでつないでPHP+mysqlを学んでいます。 サーバにアップロードする前提でeuc-jpで保存したPHPスクリプトとmysql文をwindows機単体で開くと、日本語が文字化けします。 php文はその都度euc-jp,SJISで保存し直せば、取り敢えず、問題は回避できますが、mysqlはどのようにすれば良いでしょうか。 諸先輩は、linux(UNIX)にアップするPHPスクリプトとmysql文を、windows機単体で開発するとき、どのような環境設定をしておられるのでしょうか。教えて頂ければ有難いです。私の現在の設定状況は次の通りです。 php.ini サーバ、windows(クライアント)共に、 [mbstring] mbstring.language = Japanese mbstring.internal_encoding = EUC_JP           mbstring.http_input = auto               mbstring.http_output = SJIS    mbstring.encoding_translation = On            mbstring.detect_order = auto               mbstring.substitute_character = none; であり、その他に サーバを mbstring.func_overload = 1          クライアントは ;mbstring.func_overload = 0 としてコメントアウトしています。   ----------------------- サーバの/etc/my.cnf old_password=1の下に default default-character-set=ujis と追記し、更に [client],[mysql],[mysqldump]の各項を新設して、それぞれに、やはりdefault default-character-set=ujis と書き加えています。 クライアントの my.ini [mysqld]default-character-set=sjis [mysql]default-character-set=sjis [mysqldump]default-character-set=sjis としてあります。

    • ベストアンサー
    • PHP
  • php5とmysql5の設定

    eucjpで記述したphpのフォームからmysqlにデーターを格納して取り出すDBがあり、日本語表示が化けない設定は出来たのですが同じphpから検索をするとヒットしません。 同じphpスクリプトで別のサーバー(phpとmysqlは同じバージョンです)では問題なく稼働していたので現在のサーバーのphp.iniとmy.cnfの問題だと思うのですが他の似たような状況の方の解決策をなぞってeucjpに統一するなど一通り試したのですがどうもうまく行きません。 ちなみにサーバーは自サーバーでApache/2.2.3 (Debian) 、PHP/5.2.0-8+etch7、mysqlは5.0.32です。 php.iniは mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto (EUC-JPにすると入力後?になる) mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; my.cnfは [client] default-character-set= ujis [mysqld] skip-character-set-client-handshake default-character-set = ujis character-set-server = ujis [mysql] default-character-set = ujis です。よろしくお願いします!

    • 締切済み
    • 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の文字化けで悩んでいます

    お世話になります。 Windows Server2003で、XAMPPでPHP+MySQLを利用しようとしていますが 文字化けが解消されず困っています。どなたか、お助けいただけないでしょうか。 他では成功していたSJISを使おうと思っていますがうまくいきません。 my.cnfでの[mysqld]や[mysql]などの設定、およびphp.iniのmbstringなどの設定は、 今まで成功していたWindowsやLinuxと同様に行いました。 PHPによる単純な日本語表示もMySQLモニタ上の日本語は問題ありません。 しかし、MySQLからの結果セットを受け取ると文字化けしてしまいます。 たとえば、 $re=mysql_query("SELECT * FROM tb"); while($kekka=mysql_fetch_array($re)){ print $kekka[0]; } などを実行すると「:?w?Z?カ??:」などの表示になってしまいます。 また、PHPからMySQLでINSERTすると、MySQLでも文字化けしてしまいます。 MySQLモニタで「SHOW VARIABLES LIKE 'char%';」を実行すると次のように表示されます。 character_set_client | sjis character_set_connection | sjis character_set_database | sjis character_set_filesystem | binary character_set_results | sjis character_set_server | sjis character_set_system | utf8 知識がなく、悩んでおります。 まことに申し訳ありませんが、どなたかお助けいただけないでしょうか。 どうか、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • phpMyFaqでの文字化けについて

    こんにちわ。 現在、phpMyFaqを使ってナレッジベースの構築を検討している者です。 いくつかトピックスが上がっているようでしたが、私も文字化けに 悩まされております。 どなたかアドバイスを戴ければ助かります。 宜しくお願い致します。 <当方の環境> [PHP] php-5.2.6 php.ini [mbstring] mbstring.language = Japanese mbstring.internal_encoding = SJIS mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; [db] mysql-4.1.22 my.ini default-character-set=sjis [OS] Windows 2003 server [phpMySQL] phpMySQL-2.0.9 なお、MySQL.exeを使って、SQL文で登録内容を確認したところ、 登録した文字は文字化けすることなく、登録ができていました。 表示時の問題でしょうか?

    • 締切済み
    • PHP