• 締切済み

MySQLで日本語を出力すると文字化け(?)します。

初めまして、MySQLの日本語の取り扱いについて悩んでいます。 この手の質問の過去ログをいろいろ漁ってみて、試してみたのですが、 やり方が悪いのか解決には至りませんでしたので質問させていただきます。 MySQLのバージョンは5.0で、phpMyAdminは2.9です。また、PHPのバージョンは5.1です。 OSはWindwos XPです。 status等で文字コードを確認したところ、以下のようでした。 Server characterset : sjis Db characterset : sjis Client characterset : sjis Conn.characterset : sjis また、phpMyAdminの「MySQLの文字セット」にはUTF-8 Unicode (utf8) とあります(この時点で十分謎です;;)。 このような環境で、以下のようなテーブルを作成し、ブラウザに「日本語。」と出力してみたところ、????と出ました。 どなたかのご教授を得られれば幸いです。 よろしくお願いします。

  • phper
  • お礼率75% (3/4)
  • MySQL
  • 回答数1
  • ありがとう数0

みんなの回答

  • mooboogie
  • ベストアンサー率68% (28/41)
回答No.1

>ブラウザに「日本語。」と出力してみたところ というのはPHP等でMySQLデータを抜いた、ということですかねぇ? どちらにしろ、 set names sjis; を発行後にselectすれば、正しく読めそうな気もします。

関連するQ&A

  • MySQL5.0の文字コードが変更できずに困っています。

    MySQL5.0の文字コードが変更できずに困っています。 環境は全てWindowsXPのローカルで動かしています。 インストール直後、statusコマンドで確認したところ、 Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 となっていました。 次に、C:\Program Files\MySQL\MySQL Server 5.0内のmy.iniを [client] default-character-set=sjis [mysql] default-character-set=sjis [mysqldump] default-character-set=sjis [mysqld] default-character-set=sjis としてMySQLを再起動してみたのですが、 Server characterset: latin1 Db characterset: latin1 Client characterset: sjis Conn. characterset: sjis で、ServerとDbが変わらず、このままではINSERT文などで日本語をいれることが出来ません。 どなたかご教示お願いします。

    • ベストアンサー
    • MySQL
  • MySQL4.1における文字化けについて

    WindowsXPにてMySQL4.1.12aをインストールしました。 JDBCにて、 Class.forName("com.mysql.jdbc.Driver").newInstance(); String connStr = "jdbc:mysql:///databasename?user=root&password=pass" + "&useUnicode=true&characterEncoding=Shift_JIS"; とし、insertでCSVファイルから特定の項目を追加していくということをしました。 clientにてselectしてみたら、2バイト文字がすべて 「?」に変わっていました。 my.iniにて [mysqld] default-character-set = sjis [client] default-character-set = sjis [mysql] default-character-set = sjis を追加していますが、 statusで見ると mysql> status -------------- mysql Ver 14.7 Distrib 4.1.12a, for Win32 (ia32) Connection id: 1 Current database: shop Current user: root@localhost SSL: Not in use Using delimiter: ; Server version: 4.1.12a-nt Protocol version: 10 Connection: localhost via TCP/IP Server characterset: sjis Db characterset: utf8 Client characterset: latin1 Conn. characterset: latin1 TCP port: 3306 Uptime: 30 sec となっています。 utf8、latin1というのが文字化けの原因でしょうか。 対策方法をご教授お願いいたします。

    • ベストアンサー
    • MySQL
  • XAMPPでMySQLで文字化け、文字コード設定について

    MySQLの文字セット: UTF-8 Unicode (utf8)が変更できない。(できればSJISにしたい) 環境: OS:WinXP XAMPP1.6.6 * Apache 2.2.8 + OpenSSL 0.9.8g * MySQL 5.0.51 * PHP 5.2.5 & PHP 4.4.8 (RC2) * phpMyAdmin 2.11.4 症状: コマンドラインから作った全角文字を含む簡易テーブルについて。 ブラウザからphpMyAdminで確認すると文字化けせず読めるが、 DOSからコマンド"select"で確認すると文字化けしてしまう。 DOS窓からコマンド入力で簡単なテーブルsampleを作る。 東京,tokio Kanagawa,kanagawa とうきょう,tokio mysql> select * from sample; +------------+----------+ | ken | kencho | +------------+----------+ | | tokio | | Kanagawa | kanagawa | | ニ、ォ、 | tokio | +------------+----------+ mysql> status Server characterset: sjis Db characterset: sjis Client characterset: sjis Conn. characterset: sjis mysql> show variables like '%char%'; +--------------------------+-----------------------------------+ | Variable_name | Value | +--------------------------+-----------------------------------+ | 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 | | character_sets_dir | _xampp_mysql_share_charsets_ | +--------------------------+-----------------------------------+ character_set_systemだけがutf8なのは何故でしょうか? 編集したファイル: <my.ini(C:\WINDOWS)> [mysqld] default-character-set=sjis [mysql] default-character-set=sjis [mysqldump] default-character-set=sjis <my.cnf(C:\xampp\phpMyAdmin)>(短縮ダイヤル) default-character-set=sjis init-connect=SET NAMES sjis <config.inc.php(C:\xampp\phpMyAdmin)> $cfg['DefaultLang'] = 'ja-sjis'; $cfg['Lang'] = 'ja-sjis'; $cfg['DefaultCharset'] = 'ja-sjis'; 結果: とりあえず調べた事をファイルに反映させてみましたが、 DOSプロンプトからselect文を実行すると全角文字が読めません。 どうすれば読めるようになりますか? character_set_system utf8を変更するのでしょうか? "http://www.oji.ath.cx/sb/log/eid11.html"を参考にさせて頂きましたが、character_sets_*の意味がいまいち分かりません。 こちらも分かれば教えて頂きたいと思います。 宜しくお願いします。

    • ベストアンサー
    • MySQL
  • MySQLの文字化けが直りません。

    MySQLの文字化けが直りません。 CentOS5.4+Apache2.0+ PHP 5.1.6 MySQL Server, Client とも 5.0.77 を使用しています。 設定は次の通りですが、Windows7 のクライアント機から見ると文字化けしてしまいます。 # mysql -p root -p*** (エラーを生じさせてみる) ERROR 1049 (42000): 'root' 、ハ、?ニ・ヌ。シ・ソ・ル。シ・ケ、マテΤ熙゛、サ、・ ************************************************** mysql> status Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 -------------- php.ini は次の設定です。 1123 [mbstring] 1125 mbstring.language = Japanese 1130 mbstring.internal_encoding = UTF-8 1133 mbstring.http_input = auto 1137 mbstring.http_output = UTF-8 1144 mbstring.encoding_translation = Off 1148 mbstring.detect_order = auto 1152 mbstring.substitute_character = none; 文字化けを直すにはどのようにすれば良いでしょうか?

    • ベストアンサー
    • MySQL
  • ブラウザーで日本語が文字化けする(PHP+MySQL)

    以下の現象に対処したいのですが、どうすればいいか弱っています。 (1) phpMyAdminからSQLでテーブルに日本語を挿入して、 PHPプログラムでブラウザー表示すると文字化け(?????で表示)する。 phpMyAdminでこのデータを表示すると、正しく日本語表示されている。 (PHPプログラム内で直接日本語データを記述して挿入しても同じ現象となる) (2) ブラウザーで日本語を入力してPHPプログラムで受取りMySQLに出力して、 そのデータをPHPプログラムでブラウザー表示すると問題なく日本語が表示される。 phpMyAdminでこのデータを表示すると、文字化け(ぐじゃぐじゃの文字で表示)する。 利用しているホスティングサービスは、お名前・COMのVPSプラン 実行時の環境 MySQL: サーバのバージョン: 5.0.77 サーバ: Localhost via UNIX socket MySQL の文字セット: UTF-8 Unicode (utf8) MySQL の接続照合順序: utf8_unicode_ci PHP : PHP5を使用 phpプログラムは、UTF-8で記述。 出力されるHTMLの文字セット <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    • ベストアンサー
    • PHP
  • my.iniを書き換えても文字化けが解消されません。

    MySQL5.1をWindowsVistaにインストールし、コマンドプロンプト上で実行しているのですが、日本語の文字化けが解消されません。 自分なりに調べ、下記ののように設定しましたが手詰まりになってしまいましたので、どなたか知恵を貸してください。 my.iniを以下のように変更 [mysql] default-character-set=sjis [mysqldump] default-character-set=sjis [mysqld] default-character-set=sjis character_set_server=sjis skip-character-set-client-handshake 起動時のステータス mysql> status; Server characterset: sjis Db characterset: sjis Client characterset: sjis Conn. characterset: sjis 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 コマンドプロンプトの文字コード Shift-JIS

  • mysqlの文字コードの変更方法について教えてください。

    /etc/my.cnfの[mysqld]と[mysql]にdefault-character-set = utf8を 追記したのですが、statusで確認すると Server characterset: latin1 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8 とサーバー側の文字コードが変更できていません。 ネットや本で調べてみたのですがわからず、困っております。 どなたか分かる方よろしくお願いいたします。

  • phpMyadminの文字化けについて

    PHPでINSERTしたものをphpMyadminで確認すると 日本語が文字化けしています。 コマンドプロンプトでテーブルを見てみると文字化けは起こっていません。どこを変えればいいのでしょうか? いろんなサイトを参考にmy.iniを直してみてもだめでした。 ----- my.ini ------ [mysqld] default-character-set = utf8 skip-character-set-client-handshake character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 skip-character-set-client-handshake [mysqldump] quick max_allowed_packet = 16M default-character-set = utf8 [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates default-character-set = utf8 ----- phpMyadmin ----- テーブルの照合順序 utf8_general_ci mysql> \s Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 バージョンは以下のとおりです。 XAMPP 1.7.1 MySQL 5.1.33 PHP 5.2.9 phpMyadmin

    • ベストアンサー
    • MySQL
  • Mysqlで日本語がどうしても非表示になります

    xampp for windows 1.7.0 apache 2.2.11 mysql 5.1.30 php 5.2.8 をインストールしました。 OSはwindowsXPです。 phpの基礎勉強を終え、MySQLでデータベースの作成の学習の途中なのですが、コマンドラインからデータベースを作成しselect*文でテーブル表示すると、日本語のデータがどうしても文字化けしてしまいました。 いろいろネット検索して試行錯誤した結果、status文で呼び出すと表示される各characterset(Server,DB,Client,Conn)ともにutf8にようやく統一できたようですが、文字化けこそしなくなったものの、今度は非表示(空白)になってしまいます。一応phpmyadminでもそのデータを表示させてみたのですがやはり非表示です。 一日やってどうにもならず、どなたかのお力をお借りしたいと思います。なにとぞご回答よろしくお願いいたします。

  • UTF-8にしても文字化けが直らない

    XAMPPでPHPとMySQLを使っています。 しかし、そのまま使うと文字化けが起きてしまいます。調べると「UTF-8」にすることで文字化けが起こらないとのことなので変更をし、以下のように全てutf-8に書き換えることができました。 mysql> show variables like 'char%' -> ; +--------------------------+----------------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | D:\program\xampp\mysql\share\charsets\ | +--------------------------+----------------------------------------+ しかし、それでも文字化けは直りませんでした。以下のコマンドで原因を確かめてみました。 mysql> use testdb; Database changed mysql> status -------------- Server characterset: utf8 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8 Db characterset: latin1が原因だと思い、以下のコマンドを実行しました。 alter database testDB character set utf8; そしてもう一度テーブルを作りなおすと今度は文字化けどころか空白になってしまいました。 なにが原因で文字化け等が起こっているのか分かりません。助けてください。 OSは Windows Vista です。 バージョンは ApacheFriends XAMPP version 1.7.7 + Apache 2.2.21 + MySQL 5.5.16 (Community Server) + PHP 5.3.8 (VC9 X86 32bit thread safe) + PEAR です。 回答よろしくお願いいたします。

    • ベストアンサー
    • MySQL