MySQL文字化け問題の原因と解決方法

このQ&Aのポイント
  • MySQL4.0.20dを使用しているWindowsXPhe環境で、日本語の表示に関して「伊藤博文」が文字化けしてしまう問題が発生しています。
  • 「当初」の操作やPHPの設定変更が原因である可能性がありますが、ヒントやアドバイスを求めています。
  • my.iniファイルの設定を修正することで問題が解決する可能性があります。
回答を見る
  • ベストアンサー

小泉純一郎は文字化けしないが、伊藤博文が文字化けする

MySQL4.0.20d を使用しています。OSはWindowsXPheです。 ところが、コマンドプロンプトで日本語のデータを表示させると、 「小泉純一郎」は文字化けしませんが、 当初は問題なかった「伊藤博文」全部の字が文字化けしてしまうようになりました。 MySQLをインストールし直しましたが、直りません。 「当初」とは、次の操作をする前のような気がします(不正確ですみません)。 即ち、 1.漢字を入力するときに[Alt+半角]の操作をしましたが、これが影響を及ぼすことになったのでしょうか? 2.PHP5の文字化けを直すためにphp.iniを変更しましたが、上記のMySQLのデータをコマンドプロンプトで見るときはPHPを動かしていません。 しかし、この変更が影響しているのでしょうか? my.iniは、 [WinMySQLAdmin] Server=C:/mysql/bin/mysqld-shareware.exe language=c:/mysql/share/japanese default-character-set=ujis と書いています。 要領を得ない質問とは思いますが、何かヒントかアドバイスがありましたら、ご回示頂ければありがたいです。

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

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

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

基本的にWINのコマンドプロンプトはS-JISしか入力できないので、MysqlがUJIS(EUC)の場合文字化けます。 予めテキストにEUCで保存したものを読み込む形にすれば文字化けしないと思います。

spindle
質問者

お礼

ありがとうございました。なるほど、納得です。 試してみます。大いに参考にさせていただきます。

関連するQ&A

  • MySQL コマンド上の文字化けを直すことができるでしょうか。

    [状況] WindowsXP-HE に MySQL4.0.20a-nt をインストールし, my.ini に、 [WinMySQLAdmin] Server=C:/mysql/bin/mysqld.exe [mysqld] language=C:/mysql/share/japanese default-character-set=ujis と書いています。 mysql>use TEST とし、mysql> select * from list; とすると、テーブルlistに定義してあったデータの漢字もキチンと表示できます。 [質問] ところが、例えば、試みに存在しないデータベースを選んで、コマンドプロンプトのエラーメッセージを出してみると、文字化けして表示され、内容が読み取れません。 コマンドプロンプトの文字化けはどのようにして直せば良いでしょうか?

  • 文字化けが解消できません…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
  • 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
  • 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;

  • 文字コードが有効にならない

    MySQL4.1、WinXPを使っています。 my.iniの設定に default-character-set=ujis を入れているんですが、 「Variables」のcharacter-set-○○○が変更されません。 latin1などのままなんです。 ini設定を変える前にコマンドからテーブルなどを作った場合、一部だけの文字化けでしたが、設定を変えてからは、完全に文字化けです。 ここ数日悩んでいます。よろしくお願いいたします。

  • アプリケーションからMySQLへの書き込み時点で、文字化けする。

    こんにちは。 PHP+MySQLをWindowsで使っているものですが、MySQLへの 文字化けをどうやって対処すればよいか分からず、困っています。 ネット検索でも探してみたのですが、 例えば:http://wota.jp/ac/?date=20061011 まずはじめの段階の、MySQLの文字コードを調べる、というところから すでにわかりません。コマンドプロンプトで、mysql> というところに 行くにはどうすればよいのでしょうか。 最終的に解決したいのは、文字化けなので、そちらを教えていただいても構いません。MySQLに書き込んだ時点で文字化けしてしまいます。 初心者の質問で申し訳ありませんが、ここがハードルが高いので、 よろしくお願いいたします。

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

    WindowsServerでPHPとMySQLで作成したプログラムを動かしています。 PHPからINSERTでMySQLに登録すると環境依存文字(「(株)・(有)など)が「?」になってしまいます。 PHPからSELECTでブラウザ上に表示させると文字化けはしていませんが、phpMyAdminで確認すると「?」になっています。 このデータベースの内容を他のサーバーに移すときに、phpMyAdminからエクスポートまたはmysqldumpすると「?」のままエクスポートして、他のサーバーでインポートしても当然「?」になってしまいます。 環境依存文字が文字化けしない、あるいは他のサーバーでも環境依存文字をそのまま移行できるようにはできないでしょうか。 よろしくお願いします。 PHPはEUC-JP、データベースはujisで作成しています。 INSERTの直前でSET NAMES UJISを実行しています。

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

    Xampp(Ver 1.6.5)、phpMyAdmin2.11.3、PHP5.25、MySQL(ver5.0.51) まだ初めたばかりなのですが、MySQLでデータベースを作って日本語の文字入力をすると文字化けしてしまいます。コマンドプロンプトでクライアント側はSJISにセットしたのですが、サーバー側の文字セットがまだlatinになったままです。サーバー側の切り替え方を教えていただけませんか。宜しくお願いします。

    • ベストアンサー
    • MySQL
  • mysqlの文字化けについて

    さくらサーバーのプレミアムプランで、MYSQLが文字化けを起こして困っています。 MYSQL5.1、データベースの文字コードはUTF8です。 UTF8でエンコードされたPHPプログラムからデータをINSERTすると文字化けを起こします。 ハッスルサーバーで同じ環境を再現すると、文字化けは起こしません。 違いは、ハッスルサーバーでは、「character_set_server utf8」になっているのに対して、 さくらサーバーでは、「character_set_server ujis 」となっています。 この、ujisをutf8に変更すれば解決しそうに思うのですが、変更の仕方がわかりません。 アドバイス頂けましたら、幸いです。

  • mysqldumpでの文字化けに関して教えてください。

    WindowsXPにMySQL4.1.15-nt,Apache2.0.55,PHP5.05をインストールしてプログラムを作りました。 MySQLのインストール先: C:\Program Files\MySQL\MySQL Server 4.1 MySQLにはEUCでデータが格納されています。mysqldumpで同一のWindowsXPへダンプしたところそのファイルを開くと文字化けしていました。以下を試しましたが解決しませんでした。 (1) shell> mysqldump -u userneme -p database > c:\backup.sql 秀丸で開くとUTF-8で開かれEUCで読み直しても解決しませんでした。 (2) shell> mysqldump default-character-set=ujis -u userneme -p database > c:\backup.sql 秀丸で開くとShift_JISで開かれEUCで読み直しても解決しませんでした。 (3)mysql.iniに末尾に下記を追加しましたが、解決できませんでした。 [mysqldump] default-character-set=ujis 将来的にはレンタルサーバー上で利用したいと思いPHPからMySQLへの格納をEUCにしました。 ダンプが文字化けをして大変困っています。なにか手がかりでもご教授いただければと思っています。 宜しくお願い致します。

    • ベストアンサー
    • MySQL