
PHPで作成した登録フォームで入力されたデータをmysqlに登録すると、文字化けというか?になってしまいます。すべての文字を検証したわけではないのですが、どうも環境依存文字が?になってしまうようです。環境依存文字を登録するにはどうしたらいいでしょうか?
ちなみに、現在の文字コードは
HTMLの<head>の部分に<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
PHP開始時に
mb_language("uni");
mb_internal_encoding("utf-8");
mb_http_input("auto");
mb_http_output("utf-8");
ただし、PHPの設定ファイルがさわれないのでPHP使用時の内部文字コードは恐らくデフォルトのEUC
mysqlの文字コードとしては、DB,テーブルともにutf8_unicode_ci
ファイルの保存形式はutf-8(BOMなし)
SQL文のデータ部分にmb_convert_encodingを使用
例:
insert into test(test1,test2) values(
mb_convert_encoding("テスト1","EUC-JP","UTF-8"),
mb_convert_encoding("テスト2","EUC-JP","UTF-8"))
よろしくお願いします
No.2ベストアンサー
- 回答日時:
とりあえず、
mb_convert_encoding("テスト1", "EUCJP-win", "UTF-8")
としたら機種依存文字も?にならなくなるかとおもいます。
回答ありがとうございます。
早速、以下のように試してみましたがDBには?で登録されていました。
insert into test(test1,test2) values(
mb_convert_encoding("テスト1", "EUCJP-win", "UTF-8"),
mb_convert_encoding("テスト2", "EUCJP-win", "UTF-8"))
No.3
- 回答日時:
適切な答えは出来ませんが、僕も似たようなトラブルがあったので念のため。
SQL文のカラム名をバッククオートでくくると回避できたりしませんか?
僕はPostgreSQLからMySQLへ変更する際にでくわしたのですが、元のテーブルのカラム名にMySQLの予約語が含まれていて、MySQL仕様のバッククオートでくくる処理を行なったら回避できました。
ちょっととんちんかんな答えなのかもと思いつつ・・・
No.1
- 回答日時:
とりあえず、あれ?と思った部分だけ、ツッコみ入れておきます。
> mysqlの文字コードとしては、DB,テーブルともにutf8_unicode_ci
> SQL文のデータ部分にmb_convert_encodingを使用
> 例:
> insert into test(test1,test2) values(
> mb_convert_encoding("テスト1","EUC-JP","UTF-8"),
> mb_convert_encoding("テスト2","EUC-JP","UTF-8"))
EUC-JP で DB に 書き込んでないですか。これ。
回答ありがとうございます。
登録フォーム画面もDBも文字コードをUTFー8にしてあるので、そのまま登録できると思ったのですがその場合は?ではなく完全な文字化けになってしまったので上記のような変換をおこなっています。
確かに、普通に考えたらおかしいのですがなぜか環境依存文字以外は文字化けせずに登録されています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字化け変換方法
-
mb_ereg_replaceに関して
-
PHP cURLでPOSTした値が文字化...
-
PHP+Postgres 「髙」が文字化け
-
文字列を文字コードの数値に変...
-
mb_regex_encodingでエンコード...
-
multipart/form-dataの文字化け
-
VBAのコマンドボタンの文字列の...
-
Accessの文字数を調べたい
-
メッセージボックスで1025文字...
-
Nvuで作成したhtmlをコピペして...
-
VBAでCSVをExcelに取り込む時に...
-
エクセルのCOUNTIFが正しくカウ...
-
ラベル(スタティックテキスト)...
-
phpの正規表現でstyle="●●"を削...
-
マクロでセル内の改行を削除す...
-
バーコード入力と手入力の判断...
-
カンマの含まれる文字列の数値...
-
C++で空Enterの入力を判...
-
マクロで半角を全角に
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
SQL Serverで文字コードUTF-8
-
mb_convert_encoding で 一部の...
-
ファイルの文字コードを調べたい
-
mail()で送信したメールのタイ...
-
mb_strposについて予定外の結果...
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
PHP cURLでPOSTした値が文字化...
-
PostgreSQLからCSV形式でエクス...
-
PHPmailerでの添付ファイルの文...
-
phpMyAdmin内での文字化け
-
mb_send_mailで、半角スペース...
-
UTF8メールがLotus Notesで文字...
-
メールフォームが部分的に文字...
-
DOMDocumentの文字化けに悩まさ...
-
フォームメールの文字化け
-
mb_send_mailの2重投稿を防止し...
-
【追】「あ」→「82A0」のように...
-
SJISで取得した半角カナをUTF-8...
-
Gmailへのメール送信で文字化け
おすすめ情報