• ベストアンサー

文字化け:xamppを利用したphpとmysqlの組み合わせで・・

お世話になります。 いろいろと試してみましたが、どうしても解決できないので、 再度投稿させてもらいました。 環境  Windows XP  ApacheFriends XAMPP (basic package) version 1.6.6a    phpのソースコードは、sjisで書いています。   set names sjisやいろいろとサイトを見ながら試してみたのですが、 どうにもこうにも・・・ 文字化けされていない方の設定ってどうなっていますか? どうか、お助けください。

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

まず、第一にphpソースをsjisで作ると、文字化けるだけでなく思わぬところで、プログラムエラーがでることがたびたびありますから、utf8かeucで保存し直しましょう。 理由は「Shift_JIS プログラムエラー」で検索すれば沢山解説されてるので割愛。 その上で、phpとmysqlの以下の設定を全部utf8かeucかに統一すれば良いかと思います。 以下は、eucに統一する例 ーーphp.ini の文字コード設定 mbstring.internal_encoding = EUC-JP mbstring.http_output = EUC-JP ;; 携帯用などでsjis 必須ならここのみsjis mbstring.http_input = auto mbstring.encoding_translation = Off ;; 別の方法でpost送信データの文字エンコード判別をしたほうがよい mbstring.detect_order = "ASCII, UTF-8, EUC-JP, SJIS, JIS" mbstring.func_overload = 7 ーーmysql my.ini の設定 [mysql] default-character-set=ujis [mysqld] default-character-set=ujis phpが持っている、libmysql.dll の設定変更は出来ないので、 phpからmysqlへ接続したら次のsql文実行 set names ujis

参考URL:
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_40
123daa
質問者

お礼

Variable_name Value character_set_client utf8 character_set_connection utf8 character_set_database latin1 character_set_filesystem binary character_set_results utf8 character_set_server latin1 character_set_system utf8 character_sets_dir C:\xampp\mysql\share\charsets\ これをUJISにするのでしょうか?

123daa
質問者

補足

大変遅くなりました。すいません。 ご教授いただいた内容でいろいろと私なりにテストしましたが、 やはり・・・ 教えて頂いた設定では、文字化けはなおりません。 何かほかに必要なこと、あるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 文字化け:xamppを利用したphpとmysqlの組み合わせで・・2

    環境  Windows XP  ApacheFriends XAMPP (basic package) version 1.6.6a 再々投稿です。もう本当にお手上げ状態です・・・ (http://oshiete1.goo.ne.jp/qa4147638.html) hrm_mmm様、いろいろとありがとうございました。 下記設定でも、文字化けが発生します。 XAMPPで文字化け解決された方、いらっしゃいませんか? 何かヒントをお願いします・・・助けてください。 ★mysql★ #This File was made using the WinMySQLAdmin 1.4 Tool #2008/07/09 10:24:05 #Uncomment or Add only the keys that you know how works. #Read the MySQL Manual for instructions [mysql] default-character-set =ujis [mysqld] default-character-set =ujis skip-character-set-client-handshake basedir=C:/xampp/mysql #bind-address=xx.xx.xx.xx datadir=C:/xampp/mysql/data #language=C:/xampp/mysql/share/your language directory #slow query log#= #tmpdir#= #port=3306 #set-variable=key_buffer=16M [WinMySQLadmin] Server=c:/xampp/mysql/bin/mysqld-nt.exe user=root password=1234 [mysqldump] default-character-set =ujis ★PHP★ [mbstring] mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = PASS mbstring.encoding_translation = Off mbstring.detect_order = auto mbstring.substitute_character = none; mbstring.func_overload = 7 ★ソース★ $dbconnect = mysql_connect(DB_HOST,DB_USER,DB_PASS) or die("サーバーに接続できません"); // データベース セレクト mysql_set_charset("ujis"); mysql_query("SET NAMES ujis",$dbconnect) or die("文字設定ができません"); mysql_query("SET CHARACTER SET UJIS",$dbconnect) or die("文字設定ができません"); mysql_select_db(DB_NAME,$dbconnect) or die("データーベースに接続できません"); ソースは全てEUCで記述しています。 よろしくお願いします。

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

    多くの方が同様の質問をされていたのですが、一致する問題が見つけれなかったので、ご存じの方がおられたら教えて下さいm(_ _)m (環境)  PHP 5.2.8 ZendFramework 1.5.1 から Pdo Mysqlを使用  文字コード:SJIS  Mysql 5.1  文字コード:EUC-JP (質問内容) 携帯の絵文字データをSJISのバイナリでスクリプト中に埋め込むため、スクリプトの文字コードをSJISに統一したところ、文字化けが発生しました。 SET NAMES SJIS のSQLを発行することで表示は正しくできるようなったのですが、新たにレコードを追加しようとすると文字化けが発生します。 例)情報 → 情表 insertを行う前の文字コードをSJIS,SJIS-win,EUCと変えてみましたが、SJISもしくはSJIS-winの場合は上記の例のとおりとなり、EUCにすると完全な文字化けとなりました... おそらく登録時にMYSQLがSJIS→UTF8→EUCに変換される時に正しく変換されていないものと思われるのですが、どなたか対処方法をご存じないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • xampp mysql5.0.51の文字化けについて

    mysqlの日本語文字が文字化けし、いろいろ試みてみましたが解決せず 途方に暮れております。 まだ勉強しはじめの超初心者でしてあれこれネットなどで調べて 2週間になりますが解決せず困っています。 どなたか解決方法をご存知でしたらぜひご教授ください。 環境は以下のとおりとなっております。 ・ローカルpc→windowsXP ・xampp1.6.6をインストールし、mysql5.0.51を使用中 mysqlのテーブル内の日本語が文字化けし、 いろんなサイトを参考にしながら見よう見まねで 以下のように設定してみました。 1)コマンドプロンプトで  set character set cp932; と入力 2)my.cnfというファイルに以下内容を追加 [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 3) 1)、2)でも解決されなかったため 2)の内容でutf8のところをsjisに変えて再度保存 というような設定を行いました。 このように設定しても文字化けが解消しないどころか、 このように変えてから今度はxamppコントロールパネルのmysqlが 起動しなくなってしまいました。 正確には開始ボタンを押すとmysql起動とは表示されるのですが 開始ボタンが開始のままになってしまいます。 mysqlを使用している知人にこの問題について聞いてみたところ mysql5.0~の最新バージョンは不安定なので使わないほうがいいとのことですが、本当なのでしょうか? もし解決方法がないのであれば安定バージョンでインストール し直したいと思っているのですが、 どのバージョンだと比較的安定しているのでしょうか? 併せてご回答いただけるとたいへん助かります。 本当に初心者の質問で恐縮ですが、よろしくお願いします。

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

    何度もすみません。 phpからinsertするときとphpmyadminから直接挿入するときどちらも文字化けを起こします。 phpは4.4.9でmysqlは5です。 myadminのMySQL 接続の照合順序はsjisにしております。 照合順序と保存される文字コードは違うのでしょうか。 phpファイルはsjisで保存しています。 過去の質問を見たり、調べてset name sjisとset name ujisと mb_convert_encoding($str, "EUC-JP", "SJIS");を それぞれ試しましたが文字化けのままです。 mb_convert_encoding($str, "utf-8", "SJIS"); であいうえおと入力してみたところあい???となりました。 また、adminから直接挿入した時、同じくあいうえおと入力しましたが、 こちらもあい???となりました。 adminの設定はutf-8ということのでしょうか。 照会順序以外文字コードについて表示されているところがわからなかったのですが、 どこで確認できますでしょうか。 また、php、adminともどこの設定を確認すれば良いのでしょうか? 恐れ入りますが教えていただけますでしょうか。

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

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

    • ベストアンサー
    • MySQL
  • phpでxampp環境下での文字化けについて

    プログラムを初めて組んでいるのですが、どうしてもデータベースを使いたいので phpmyadminを使い、いろいろいじっているのですが、phpでデータベースの内容を 表示したときなのですが、どうしても文字化けが直りません。 (日本語だけ文字化けします) いろいろググってみて以下で解決できそうなのですが、書いてある事がさっぱりわからず どなたか分かりやすく解説してもらえませんでしょうか。 phpの文字コードはUTF8 データベース照合順序はutf8_general_ciにはして あります。 最初の 「SET NAMES utf8」というクエリを発行。 というのはすでに意味がわかりません・・。 --------------------------------------------------------- 【状況】 PHPからMySQLにデータ登録し、phpMyAdminで値を閲覧すると、日本語が文字化けしている。 ただし、その状態の値をPHPで取得・表示は普通にできる。 ※PHP、HTMLの文字コードは「UTF8」。データベースの照合順序は「utf8_general_ci」 【対応】(以下の「xampp_path」はXAMPPのインストールパス) データベース接続後に「SET NAMES utf8」というクエリを発行。 もしくはPHP5.2.2以降なら「mysql_set_charset(‘utf8′);」を実行しても良い。 「xampp_path/mysql/bin/my.ini」に以下の項目を追加・修正 [mysqld] character_set_server=utf8 skip-character-set-client-handshake [mysqldump] default-character-set=utf8 [mysql] default-character-set=utf8 「xampp_path/phpMyAdmin/config.inc.php」に以下の項目を追加・修正 $cfg['DefaultLang'] = 'ja-utf-8'; $cfg['DefaultCharset'] = 'ja-utf-8';

    • ベストアンサー
    • PHP
  • 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
  • XAMPPの文字化け

    データベース(MySQL)に接続してデータを表示するというプログラムをPHPで作っています。ですが、日本語の部分が文字化けをしてしまいました。 どうやらソースコードではなくXAMPPの設定に原因があるそうです。 my.iniに以下の記述を追記すればよいとのことなのでmy.iniを変更したのですが、そうするとMySQLが起動できなくなってしまいます(起動してもすぐ自動的にストップしてしまいます) なので、my.iniの内容をコピーしたmy.confを作成し、そこに以下の記述を追記しました。 [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 すると、MySQLは起動できるようになりました。しかしステータスを参照すると以下のように表記されており変更が反映されていません。 +--------------------------+----------------------------------------+ | Variable_name | Value +--------------------------+----------------------------------------+ | character_set_client | cp932 | character_set_connection | cp932 | character_set_database | latin1 | character_set_filesystem | binary | character_set_results | cp932 | character_set_server | latin1 | character_set_system | utf8 | character_sets_dir | D:\program\xampp\mysql\share\charsets\ | +--------------------------+----------------------------------------+ どうすればいいのでしょうか?いろいろ調べて試してみたのですが分かりません。このせいで先に進めず困っております。助けてください。。 保存先フォルダは D:\program\xampp\mysql です。 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
  • 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
  • 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
ローラー清掃J968N
このQ&Aのポイント
  • J968Nを使っています。ラベルシートを印刷すると、すぐにローラ清掃を要求されてなかなか解消しません。
  • ローラー清掃の方法をご存知の方、いますか?解決策を教えてください。
  • ブラザー製品のJ968Nを使用していますが、ラベルシートの印刷時にローラー清掃を要求される問題が発生しています。解決方法を教えてください。
回答を見る