
サーバー上に置いてあるphpMyAdminを使ってるんですが、
フォームから項目を送ってMySQLに保存してます。
そこで、大体の項目はフォームから送られてもその形のまま保存されているんですが、一部の内容だけが文字化けになってしまいます。例とすると「高橋 ジャネット」とフォームから入力すると「高橋 ジャネッ・/td>」と保存されているみたいです。
ここでここの論点なんですが、まず1つ目に管理画面で表示されるプルダウンでの言語設定がMySQLの言語設定になっているのか?
次に、設定がそこであるのであったとして、PHP+MYSQLの場合はEUC、SJISどちらのモードでソース+DBを組んだ方がいいでしょうか?
2番目については参考程度にお聞きしたいと思います。
結構MySQLで文字化けで検索すれば色々出てはくるのですが、みんなローカル環境でのもののようなので、質問したいのですが、大抵終わってたりしていますので、よろしくおねがいします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
高橋 ジャネット
と保存しているフィールドタイプを見てください
varchar(?)
(?)の部分です
半角で?文字分という意味です
高橋 ジャネットの場合、
スペースが半角と仮定すると、varchar(15)以上じゃないとダメですね
No.2
- 回答日時:
初めて知りましたが、こんな関数もあるみたいですね。
さすが関数豊富なPHP。
内部エンコーディングを調べる
>>>mb_internal_encoding()
出力エンコーディング調べる
>>>mb_http_output()
HTTP入力文字エンコーディング調べる
>>>mb_http_input([引数])
引数はGでGET値、PでPOST値。指定しなければ、最後に送信されたもの。
MySQLの文字コードは、phpMyAdminでselectを発行したとき、結果が文字化けしないものです。
(おそらく、現在使用中の文字コードでしょう)
データ入力時にmb_convert_encodingを使うタイミングは、フォームの値を受け取るときがいいと思います。
クエリの形に整形した後だと、","や"'"などの1バイト文字との絡みで、うまくいかないかもしれないので。
化け方は、EUC-JPをShift JISで読んだときに似てますね。
サーバがIISでないなら、PHP、html、MySQL全てをEUC-JPに統一した方がいいと思います。
文字化けはいろんな原因が組み合わさって起こるので、ハマリやすいバグかつ非常にムカつきます。
私もよくPCに悪態ついてます(笑)。
気長にいろんなパターンを試してみてください。
とても丁寧にありがとうございました。
一つ思いっきり大事な事を書き忘れてたのですが、現在HTML、phpともにキャラクターセットはShift-JISで行っています。
今、phpMyAdminのページでEUCとSJISにエンコードをかけて文字化けする文字を入れてみたのですが、どちらも結局化けてしまいました…というか、そもそもEUCとSJISを選択できる時点でそれ意外なのでは?という疑問もでてきてるのですが、サーバーのタイプは後で管理者に聞いてみようと思います。
No.1
- 回答日時:
文字コードは、環境によります。
phpinfo()を実行して、サーバーやエンジンの文字コードを確認してみてください。
あとどのタイミングで文字化けが起こっているか、段階を追ってテストしてみてください。
文字化けが発生する前の段階で、mb_convert_encodingなどを咬ませればよいと思います。
さっそくの指導ありがとうございました。
ですが、残念なことに今やった結果によると、サーバーの
セキュリティ上phpinfo()は実行できませんと表示されてしまいました…
他になにかいい方法ありましたらお願いします…
それと、タイミングなんですが、予想どおりフォームに
漢字+カタカナの小さい形が入るとその文字、もしくはその後から文字化けが発生しているみたいなので、エンコードするならそのデータをインプットもしくは、アップデートするときと考えていますが、あっているでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- フリーソフト 色々な形式の個人情報を後で参照しやすいようWindow10で管理したいのですが、どんな方法があるの? 1 2023/04/29 16:46
- PHP ここで言うトークンの意味を教えてください。 3 2022/08/24 03:03
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- MySQL XamppでインストールしたMySQLのフォルダのWinRARでのバックアップについて 1 2022/06/22 18:55
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpMyAdmin内での文字化け
-
PHPmailerでの添付ファイルの文...
-
vodafoneが言う事ききません
-
ASCII文字列のgrep
-
サーバー上でのphpMyAdminにつ...
-
mb_eregについて
-
文字コード変換
-
文字化け変換方法
-
PostgreSQLからCSV形式でエクス...
-
日本語(マルチバイト)でのwor...
-
メール送信の設定について
-
SQL Serverで文字コードUTF-8
-
UTC-8→SJISで文字化け
-
VBAのコマンドボタンの文字列の...
-
文字の入力で横バー上段、中断...
-
ファイルから読み取った改行文...
-
ソースコードの1行が長いとき...
-
awkで改行を除いて文字列を抜き...
-
Excel VBS、ADODB.Streamで改行
-
正規表現
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
PHP cURLでPOSTした値が文字化...
-
PostgreSQLからCSV形式でエクス...
-
PHPでの文字列置換について
-
SQL Serverで文字コードUTF-8
-
文字変換
-
記号全削除のクラスを作成したい
-
mb_send_mail()関数のタイトル...
-
postの文字化け防止について
-
SJISで取得した半角カナをUTF-8...
-
UTF8メールがLotus Notesで文字...
-
mb_send_mailの2重投稿を防止し...
-
日本語混じりの文字列の語数制限
-
10文字以降は非表示にしたいん...
-
SJIS→UTF-8変換後の文字化けに...
-
multipart/form-dataの文字化け
-
メール送信プログラムで特定文...
-
mysql登録時の文字化け
-
Warning: mb_strpos(): Unknown...
-
mb_ereg_replaceに関して
おすすめ情報