• 締切済み

日本語のデータが表示されません

Xampp1.7付属のMySQL5.1.30を使用しています。 SELECT文で日本語データを抽出しても表示されません。 他の数値の列は表示されますが、日本語文字列の部分だけ空白が表示されます。 列の定義はVARCHAR(10)となっており、INSERTで挿入すると、Query OK と出ますが、Warning 1 とも出ます。 my.cnfにはcharacter-set-server = ujis と書いて、status コマンドでも ujisになっているのが確認できました。 コマンドプロンプトの文字コードをchcpで日本語EUC(20932)に変更しても駄目でした。 何が原因か分かりません。どなたかご存じないでしょうか?

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

みんなの回答

回答No.3

たまたま立ち寄りました. 参考になれば幸いです。 MySQL 5.0 と MySQL 5.1 では、日本語(を含む文字コード)の設定が 全く違うため、MySQL 5.0 の情報源を信じて、MySQL 5.1 を使うと 混乱するということがあります。 ※ MySQL 5.1 では、テーブル名として日本語を使うことが簡単にできるようになりました。 <助言> ・今から新しくデータベースを作る(ことが許される)なら、cp932 を候補として提案します http://www.db.is.kyushu-u.ac.jp/rinkou/mysql/kanji.html ・今のデータベースを温存したいのでしたら、「skip-character-set-client-handshake の設定(クライアント文字コードセット自動変換機能の解除)」を行った結果、どのソフトで、どういう文字が出てきたか(要するに空白のままなのか)、この板で見せる。 「show variables like 'character_set%';」や「show variables like 'collation%';」の結果を見せるなどしますと、議論が進むかも知れません。 http://www.db.is.kyushu-u.ac.jp/rinkou/mysql/code.html ・今後の用途として、他のソフトとの連携(Java や Web など) を考えておられるなら、それを開示してくださいますと、議論を絞ることができるかも知れません。

参考URL:
http://www.db.is.kyushu-u.ac.jp/rinkou/mysql/kanji.html
  • oraaoz
  • ベストアンサー率100% (1/1)
回答No.2

コメントありがとうございます。 私の環境では少しうまくいきました! しかし、なぜかわからないですけど2箇所の my.cnf を使っているようです。両方の My.cnf がちゃんとしてないとうまく表示されません。 また、クエリはまだ認識されていないようです。。。 asasho321さんのほうでなにか情報が追加されましたらお教えいただけるとありがたいです。

  • oraaoz
  • ベストアンサー率100% (1/1)
回答No.1

こんばんは。 私も PHPを使って 日本語データを表示したところ ??となってしまいました。 キャラクタセットの統一をしてもうまくいっておりません。 問題が似ているので、明日対応してみようと思うことを回答させてください。もし、私より先にお試ししていただければ、その結果もお教えいただければありがたいです。 WEBで調べたところ、もしかしたら My.cnf に・・・skip-character-set-client-handshake を設定すればうまくいくのかな? と思いました。 ピントが合っていない回答でしたらごめんなさい。 my.cnf ファイル [mysqld] default-character-set = sjis skip-character-set-client-handshake [mysql] default-character-set =sjis

asasho321
質問者

お礼

実は、skip-character-set-client-handshake の設定は私も試していました。 残念ながら私の環境では効果がありませんでした。使い方が悪かったのかもしれません。 ですが、oraaozさんの環境では成功するかもしれないでの、構わず試してみてください。 アドバイスありがとうございました。

関連するQ&A

  • mySQLの日本語表示について

    mySQLの日本語表示について質問があります。 OSがvistaであるPCにxampp1.7.7をインストールし、必要なセットアップをすませました。 そこで、コマンドラインより適当なデータベース(workdb)に create table tab1(number int(8) unique not null, city varchar(10), country varchar(10)); として、テーブル(tab1)を作成し、 insert into tab1 values(1, '東京', '日本'); とtab1にデータを挿入し、 select * from tab1; で、tab1の内容を表示したところ +-------+----+-------+ | number | city | country | +-------+----+-------+ |     1|   |      | +-------+----+-------+ と、日本語で挿入した物だけ表示されませんでした。 status より、charactersetを確認したところ Server,Db,Client,Conn 全て utf8 となっていました。 また、 show variables like "char%"; より、Variable_nameも確認したところ character_set_client,character_set_connection,character_set_database,character_set_result,character_set_server,character_set_system は全てutf8になっており、character_set_filesystemのみbinary となっていました。 この『日本語のみ表示されない』原因はどういったものが考えられるのでしょうか? character_set_filesystem が原因なのでしょうか? 原因をネットで探してみましたが、『日本語が文字化けする』といったものばかりがヒットし、また上記のVariable_nameがutf8になっていないといった内容が多く、自分に生かす事ができませんでした。 わかる方がいらっしゃればお手数おかけして大変申し訳ないのですが、是非ご教授お願いしたいと思っています。 よろしくお願いいたします。 質問に必要な情報が足りていない場合、教えていただければと思います。

  • MariaDBデータベースの日本語文字化け

    しばらく前に「PHPspreadsheetのインストール」の質問でお世話になった者です。 この件ではXamppを再インストールしてPHPspreadsheetが使えるようになったのですが、今度はMariaDBデータベースで作ってある日本語データの表示で文字化けが起こってしまいました。 このデータベースは前々回に質問させていただいた「PHPでのJSONの使い方(1)..(3)」で使用していた英単語と日本語の表示プログラム用のものです。 このプログラムを実行したスクリーンショットを添付してあります。 データベースの作成時には各フィールドの文字セットはcp932としてあります。 コマンドプロンプトで CHCP 932 としてデータテーブルの中をのぞくとちゃんと日本語が表示されます。 show variables like "char%"; を実行すると以下のようになってます。 +--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | cp932 | | character_set_connection | cp932 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | cp932 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | C:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+ データベースの文字セットがutf8mb4 なのでこれをcp932にすればいいのかなと思い、次のコマンドを入れてみましたが変わりありませんでした。 ALTER TABLE words MODIFY japanese varchar(50) CHARACTER SET cp932 NOT NULL; 以前のXampp(xampp-windows-x64-8.0.3-0-VS16-installer.exe)の下ではちゃんと動いていたので、入れ直したXampp(xampp-windows-x64-7.3.11-0-VC15-installer.exe)のインストール後にするべきことを全部していないのだと思いますが、文字セットの設定はなんだかややこしくてよくわかりません。 どなたかお知恵を貸していただけないでしょうか。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • mysqlコマンドでcharsetを指定したい

    my.cnfは下記の設定で、 LinuxのSSHでmysqlコマンドを使う時だけ、ujis(EUC) で表示したいのですがどうすれば良いでしょうか? ■/etc/my.cnf [client] default-character-set=sjis [mysql] default-character-set=sjis [mysqldump] default-character-set=sjis mysqlコマンドではオプションが指定できないようで・・

  • phpMyadminと文字コード

    PHPとMySQLのインストールをxampp(ver1.6.7)を使って行いました。文字コードはEUC-JPを使いたいので、資料を片手にmy.iniにdefault-character-set=ujisとskip-character-set-client-handshakeを追加しました。 コマンドプロンプトからMySQL Monitorを使ってshow variables like 'char%';と打ってみると、次のように表示されます。 +--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | ujis | | character_set_connection | ujis | | character_set_database | ujis | | character_set_filesystem | binary | | character_set_results | ujis | | character_set_server | ujis | | character_set_system | utf8 | | character_sets_dir | c:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+ と、ここまではいいのですが、phpMyadminのトップの画面には相変わらず「MySQL の文字セット: UTF-8 Unicode (utf8) 」と表示されるます。これは無視してもかまわないのでしょうか。phpMyadminを使って入れたデータをPHPで表示するとちゃんと表示されます。

    • ベストアンサー
    • MySQL
  • コマンド画面で日本語が文字化けしてしまいます。

    直のリナックスマシンの コマンド画面で日本語が文字化けしてしまいます。 LANG="en_US"にすると 英語できちんと表示されるのですが LANG="ja_JP"にすると(ujisでもeucでも) 文字化けします。 「\0\e\o」と、こんな感じで表示されてしまいます。 どうすれば日本語できちんと表示できるのでしょうか? Red Hat Linux7.2です。

  • my.cnf と my.ini の違い

    my.cnf と my.ini の違いがよく分かりません。 これらは同じものでしょうか? 最近、XAMPPを使用しており、以前に単独で入れたMySQLが不要になったのでアンインストールしたところ、XAMPPのMySQLのコマンドプロンプトからの操作が文字化けしてしまい、 ・my.cnf の [mysql] default-character-set=sjis ・chcp 65001 ・SET NAMES sjis 等を試して、丸一日格闘しましたが、解決せず、しかたなく再度単独でMySQLを入れて、パスを通し、my.ini に default-character-set=sjis 指定してやると文字化けが直りました。 問題は解決したのですが、使用していないMySQLが入っているので、気持ち悪いです。 my.ini は my.cnf より強いのですか? XAMPP内には、my.cnf しかないですが、これを、my.ini に変更することはできますか?

  • 文字化けが解消できません…MySQL5.2.1

    OS:WINDOWS XP MySQL5.2.1 Apache2.2.4 php-5.2.1 文字(EUC-JP使用) PHPからテーブルにINSERTした場合、echoできちんと表示できます。 しかし、コマンドプロンプトを開いてテーブルを見ると、 PHPからINSERTした日本語が文字化けしています。 コマンドプロンプトにINSERTで日本語を入力すると、 Query OK と表示されますが、SELECT * FROM で内容を表示すると、 空白で何も表示されません(PHPのechoでも表示されません) 色々調べてみたのですが…どうしても解決できません… 【my.ini】 [client] port=3306 default-character-set=ujis [mysql] default-character-set=ujis [mysqld] port=3306 basedir="c:/mysql5/" datadir="c:/mysql5/data/" default-character-set=ujis init-connect="SET NAMES ujis" skip-character-set-client-handshake [mysqldump] default-character-set = ujis 【SHOW VARIABLES で確認した文字コード】 character_set_client ujis character_set_connectioon ujis character_set_database ujis character_set_filesystem binary character_set_results ujis character_set_server ujis character_set_system utf8 試しに mysql> SET NAMES ujis と入力したりしてみましたが 文字化けしたままになっております。 SHOW CREATE DATABASE と SHOW CREATE TABLE で表示された CHARACTER SETは ujis でした。 my.iniの character-set を ujis に設定した場合、 日本を表示させることはできないのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • MySQL 4.1.10a で日本語入力できない

    以下の環境でPHPとMySQLを使おうと思っているのですが、MySQLのコンソール画面で日本語を入力しようとしても、日本語が表示もされずに消えてしまいます。 mysql> select * from table where data='日本語 ↑ここでエンターを押すと mysql> select * from table where data=' ↑こうなります 過去にも似たような事例は見かけるのですが、参考にして対処しても改善されません。どうしたらよいのでしょうか、すみませんが教えてください。 <以下は環境など> ・FedoraCore2 ・Apache2 ・PHP5.0.4 ・MySQL4.1.10a ■設定ファイル /etc/my.cnf [mysqld] default-character-set = ujis [mysqldump] default-character-set = ujis [mysql] default-character-set = ujis ■起動方法 /usr/local/mysql/bin/mysqld_safe --default-character-set=ujis & ■SHOW CHARACTER SET 以下のように表示されすので、文字コードは入っているように思えるのですが、 どうやって使用すればよいのでしょうか。 mysql> SHOW CHARACTER SET …略… | ujis | EUC-JP Japanese | ujis_japanese_ci | 3 | | sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 | …略… ■Linuxの日本語環境 /etc/sysconfig/i18n LANG="ja_JP.eucJP" SUPPORTED="ja_jp.eucJP:ja_JP:ja"

  • MySQL 日本語表示 日本語入力できない 

    MySQL超初心者です。 XAMPPをインストールしてMySQLの勉強を始めたばかりです。 コマンドプロンプトで日本語入力ができません。 「基礎からのMySQL」という本の内容にそって進んでおり、文字コードの設定 character-set-server = sjis #collation-server = latin1_general-ci skip-character-set-client-handshake もやりましたが、日本語が全く入力できません。 そもそもインストールやセットアップの段階で、画面に表示される日本語が文字化けして読めない状態でした。(ブラウザで日本語のウェブサイトを閲覧する際にもよく文字化けがおこります。グーグルクロームを使っています。)海外で購入したパソコン(eMachines, Windows XP)であることが問題なのでしょうか?何か設定が必要なのでしょうか? コントロールパネルから言語の設定にて、日本語でキーボード入力できるようにしたので(Microsoft IME)、日常メールをするときなどの日本語入力の問題はありません。 以上よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • ActivePerl5.8で日本語を使いたい

    ActivePerl5.8の日本語処理で困っています。 EUCで書かれたのHTMLファイルに、タグの修正などの文字列処理をしているのですが、 *その結果をshift-jisで出力したい。 *コマンドライン上の文字も文字化けさせずに表示したい というあたりで困っています。 use encoding 'shiftjis'; binmode STDERR, ':encoding(shiftjis)'; という記述を書けばOKという記述を見たため試したのですが、うまく動きません。記述を外して、ソースをeucで書くと、コマンドライン表示以外はうまく動くのですが、他の組み合わせですと、日本語の文字処理がうまく行かかかったり、perl自体が落ちたりと、試行錯誤の連続です。 文字処理というのは例えば、以下のような感じです。 print $mytitle; if ($mytitle =~/(【.*?】)/){ $subtitle = "<div class=\"head2\">$1<\/div>\n"; } (【】で囲んだ文字だけに特定のスタイルを効かせる。) 文字列処理とコマンドラインも文字化けの双方を解決させる手立てを教えて頂ければと思います。 よろしくお願いします。