• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データが文字化けします。)

データが文字化けする!PHPとMySQLの勉強を始めた初心者が困っています

noname#222177の回答

noname#222177
noname#222177
回答No.3

レンタルサーバーの中には、データベースやブログを自動で インストールする機能を持っているところがあります。 これが結構くせ者で、フォントの設定がぐちゃぐちゃだっ たりします。特に海外のレンタルサーバーはひどかった。 いちいち手動で直していたのですが、インストールする たびに直すのが面倒で、海外のレンタルサーバーはやめて しまいました。 あと、可能性があるのは、エディターがUTF-8に対応して いるかどうかです。 この文字コードの実用性のある理解に1年もかかるわけが ありません。一週間もあれば習得できますよ。がんばって ください。

vacation_days
質問者

補足

skanchan さま どうも有り難うございます。 エディタはK2Editorというのを使っており、UTF-8 使えるようになっています。 設定は「どこの何を確認すると良いのか」、「どう直すと良いのか」さっぱりの状態です。 この辺りを理解するのに何を勉強して良いのやら、検索するにも何を検索すると良いのやら. 色々と検索してみたものの時間ばかり無駄にかかってしまいなかなか良い結果を得られていません。 何かお勧めのサイトや本などご存じないでしょうか?

関連するQ&A

  • 文字化けに関して

    環境 PHP:PHP5.3.8 MySQL:mysql-5.5.17-win32 phpmyadmin:phpMyAdmin-3.4.7-all-languages 文字化けに関して教えて下さい。 過去に何度も設定した経験がありますが、また同じ事ではまってしまいました。 現在、phpのプラグラム(プログラムの設定は charset=SHIFT-JISで設定)でMySQLへ入力処理を行っていますが、 どうしても文字化けしてしまいます。 MySQLの環境としては、 mysql> show variables like "char%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | sjis | | character_set_connection | sjis | | character_set_database | utf8 | | character_set_results | sjis | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | C:/Program Files/MySQL/MySQL Srever 5.5/share/charsets/ | +--------------------------+----------------------------+ となっており、上記character_set_database がutf8である事が原因とあった為、 何とか変更しようとしましたが、変更できません。 phpmyadmin の設定も間違っているのでしょうか? そもそもどのような設定を行えば良いのか、正しい値を教えて頂ければ幸いです。 初歩的な質問で申し訳ありませんが、教えて下さい。

    • ベストアンサー
    • PHP
  • 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
  • 文字化けが発生する

    Apache 2.0.54、PHP 5.0.4それから、MySQL 4.1.14でPHPのテスト環境をWindowsXP上に作りました。PHPとMySQLの設定ファイルで文字コードを、UTF-8に統一してほかのMySQL(4.0.12)からダンプしたファイルをUTF-8に変換した後にMySQL 4.1.14にインポートしました。 phpMyAdmin上からは文字化けなしにインポートしたファイルが見れるのですが、なぜか自分で書いたPHPスクリプトではデータ部分がすべて「?」に変わってしまいます。ブラウザの文字コードを変えても?で、試しにそのデータ部分のエンコードをPHP上から調べてみると「ASCII」になっていました。また、MySQLの環境変数のcharacter関係の変数はすべて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_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\ MySQL\MySQL Server 4.1\share\charsets/ | +--------------------------+------+

    • ベストアンサー
    • MySQL
  • phpmyadminで日本語データが文字化け

    phpmyadminで日本語のデータだけ文字化けしてしまいます。 phpで作成された掲示板からデータをmysqlに投稿し、そのデータを再度掲示板で表示しています。 投稿・表示するphpファイルはutf8で、mysqlのmy.cnfは以下のようになっています。 --------------- [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 character-set-server=utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8 --------------- phpmyadmin(2.11.11)側は、MySQ の接続照合順序:utf8_unicode_ci にしています。 phpmyadminで文字化けしているデータをphpで見ると問題なく表示されてるのが不思議です。 どこが問題なのでしょうか。

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

    PHP5.2.4、MySQLバージョン4.1.16、phpMyAdmin 2.11.1を使用しています。 php側でInnoDBのテーブルを作成して日本語の値を挿入した状態です。 php側では表示などしても文字化けしてないのですが、 phpMyAdminで日本語で登録されているカラムを見ると文字化けしています。 phpMyAdminで日本語の値で更新し直すと、文字化けせずにちゃんと表示されます。 mysqlの設定ファイルで #character-set-server = latin1 #collation-server = latin1_general_ci default-character-set=utf8 skip-character-set-client-handshake として再起動してテーブルを作成し直したのですが文字化けは直りません・・・ 何が原因なのでしょうか? phpMyAdminのテーブルオプション ストレージエンジン:InnoDB 照合順序:utf8-general_ci

    • 締切済み
    • PHP
  • MAMPのMySQLで文字化けする

    すみません、教えてください(><) mac( os X 10.7.5)でMAMP+Eclipse+PHPを使って以下のようにMySQLにデータ挿入 mysql_connect('localhost','root','root') or die(mysql_error()); mysql_select_db('mymy'); mysql_query('SET NAMES UTF-8'); mysql_query('INSERT INTO item SET id=1, name="あいうえお"'); をしたのですが、 phpMyadminからデータを確認してみると日本語が文字化けしてしまいます。 (phpMyadminからデータを挿入した場合はちゃんと表示されます。) 色々と調べ、 Eclipseの環境設定でワークスペースの文字コードやphpの文字コードをUTF-8にしたり、 MySQLのmy.cnfファイルの中に以下 [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_unicode_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 を追加して再起動し、DBを一旦削除して再度作り直して挿入してみたりとやったのですが、改善されません。 サーバ接続の照合順序 は「utf8_general_ci」として作成しています。 コンソールからMySQLへ接続してDBの文字コードを確認してみると character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /Applications/MAMP/Library/share/charsets/ | というかたちになっています。 他にどういった点を改善すればいいのでしょうか? もうお手上げ状態でどうすることも出来ずにいます。。。

  • MySQL4.0 UTF-8 での文字化け

    こんにちは MySQL4.0 & PHP4.3 でHTMLは文字コードUTF-8で記述しています。 MySQL4.0の文字コード設定はレンタルサーバーのため不明ですが、 phpMyAdminで、utf-8にてデータを入力しました。 select文でMySQLのデータを拾ってくると文字化けはおきないのですが PHP経由でPOSTされた値を使ってinsertやupdateをかけると文字化けしてしまいます。phpMyAdmin上でも文字化けしていますが、phpMyAdminをEUC-JPにすると、入力した文字が文字化けせずに表示されます。 (が、すでに入っているデータは文字化けします、、、、) 入力画面は metaでUTF-8宣言をしており、ブラウザ(IE)上でエンコードを確認するとUnicode(UTF-8)になっています。4.1みたいにset names を指定するとうまくいくかな?と思ったのですが、やっぱり4.0なので結果は変わらず、でした。PHPのスクリプトそのものは、UTF-8で記述しているのですが、、、、 どういった項目をみなおせばいいのでしょうか?

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

    現在PHPとMySQLを利用したwebシステムを作成しています。 しかし文字化けが発生して困っています。こちらの環境は PHP5.1.4 MySQL5.1.11 phpMyAdmin - 2.8.0-rc1 レンタルサーバー(xrea)を使っています。 自分でいろいろと調べたところ文字のエンコードはujisに統一したほうがいいとのことまではわかりました。 show variables like "char%"; を実行したところ character_set_client utf8 character_set_connection sjis character_set_database ujis character_set_filesystem binary character_set_results utf8 character_set_server utf8 character_set_system utf8 このように表示されます。 PHPの方も <?php header('Content-Type:text/html; charset=EUC-JP'); ?> や <?php $str = mb_convert_encoding($str, "EUC-JP", "auto"); ?> を実行しても日本語の部分は???で表示されてしまいます。 いろいろと調べたのですが、さっぱり原因がわかりません。 よろしくお願いします。

  • MYSQLの文字化けについて

    MYSQLの文字化けについて質問させてください。 MYSQL COMMAND LINE CLIENTでMYSQLに作ったデータベースに下記のSQL文でデータを入れると、下記のエラーが出ます。 sql 「insert into テーブル名 (id、type)values (1,'男性’);」 エラー文 incorrect string value: '入力文字が文字化けして表示’for column 'type’at row 1 文字化け対策として、調べたところ、下記のように「my.ini」に記述すると言うことでしたので、試してみました。 [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8 skip-character-set-client-handshake [mysqldump] default-character-set =utf8 ちなみにその他情報です。 MySQLのバージョン MySQL 5.1 MySQLで有効になっている文字コード 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 何かお解かりになることがありましたら、宜しくお願いします。

  • phpmyadmin 文字化け

    phpmyadmin 文字化けを開きテーブルを見ると日本語が化けてしまいます。 php のプログラムからは読み書き、表記は正しくできます。 いろいろ調べ以下をやったのですがだめでした。 「MySQLの設定」 # vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql old_passwords=1 default-character-set = utf8 character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 #skip-character-set-client-handshake ※最終的にコメントアウト [mysql] default-character-set = utf8 [mysqldump] default-character-set = utf8 MySQLをリスタートする。 # /etc/rc.d/init.d/mysqld restart 「phpMyadminの設定」 # vi /var/www/phpmyadmin/config.inc.php $cfg['DefaultLang'] = 'utf-8'; $cfg['DefaultConnectionCollation'] = 'utf8_general_ci'; $cfg['FilterLanguages'] = ''; $cfg['DefaultCharset'] = 'utf-8'; $cfg['AllowAnywhereRecoding'] = TRUE; apache再起動 何か足りない点はありますでしょうか? 環境は以下です。 phpMyAdmin •バージョン情報: 3.5.1 (最新版) •サーバ: Localhost via UNIX socket •ソフトウェア: MySQL •ソフトウェアバージョン: 5.1.61 - Source distribution •プロトコルバージョン: 10 •ユーザ: root@localhost •サーバの文字セット: UTF-8 Unicode (utf8)

    • ベストアンサー
    • MySQL