いつもお世話になっております。
PHP初心者なのですが質問させてください。
タイトルの通りPHPからMySQLへと流したデータの一部半角スペースが
半角のクエスチョンマーク(?)に勝手に変換され困っています。
色々他のサイトを見て回った結果
<?php
mb_internal_encoding("utf-8"); //内部文字コードを変更
mb_language("uni");
mb_http_input("auto");
mb_http_output("utf-8");
mysql_query("SET NAMES utf8");
(以下DB接続部は略)
?>
とし、my.iniに
skip-character-set-client-handshake
を加えました。
環境はXAMPPを使っており次の通りです。
よろしくお願いします。
# Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9
# MySQL クライアントのバージョン: 5.0.51a
No.2ベストアンサー
- 回答日時:
質問内容を拝見すると、PHPの内部エンコードはUTF-8になっているようですね。
私も同じくPHP(UTF-8)、MySQL(UTF-8)で同じような経験をしました。
詳しく検証したわけではないのですが、DBに投入する直前のform中のhidden属性の
inputのvalue値に「」が含まれている場合にこのような現象が起きるようです。
(その先でどのような加工を行っているかまでは時間がなく調査していないのですが…)
最終的にDBに投入される際に「」が 0xc2 0xa0 という半角空白に変換されていました。(普通の半角空白はUTF-8でも0x20です)
この「0xc2 0xa0」という半角空白はSJISに変換することのできないコードのようで、
それが「?」と表示されるようです。
html_entity_decode()のPHPのオンラインマニュアル(http://jp2.php.net/manual/ja/function.html-entit …)をみると、
「ISO-8859-1 では '' エンティティが ASCII コード 32 ではなく
ASCII コード 160 (0xa0) に変換される」
とあるので、これが関係しているのかもしれません。
$sがDBに投入する文字列の場合、投入直前に以下のような処理を
入れれば大丈夫かもしれません。
----------------------
$sp = html_entity_decode('', ENT_QUOTES, mb_internal_encoding());
$s = mb_ereg_replace("[{$sp}]", ' ', $s);
----------------------
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- MySQL XamppでインストールしたMySQLのフォルダのWinRARでのバックアップについて 1 2022/06/22 18:55
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- PHP PHP & MySQL: Server-side Web Development ペーパ 1 2022/04/19 19:23
- PHP ログイン機の付きの掲示板サイトを作りたいです。 2 2022/10/09 04:33
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
全角括弧と全角読点の間隔を狭...
-
文字の入力で横バー上段、中断...
-
なぜインターネットでは半角カ...
-
Excel関数「COUNTIF」で”文字”...
-
全角半角変換 C++/CLI
-
エスケープ文字の復帰(¥r)と...
-
texのchapterが改行される
-
文字化け変換方法
-
LaTeX: captionの中で改行した...
-
ASCII文字列をEUCなどに変換し...
-
正規表現の置き換えを使って。...
-
textarea , PHP, 確認画面 改行
-
VBAのコマンドボタンの文字列の...
-
fscanf関数について
-
(UWSC)1行が長いので、途中改行...
-
mb_ereg_replaceに関して
-
CSV出力時の改行コードについて
-
ソースコードの1行が長いとき...
-
改行だけの行の削除
-
http://とhttps://のどちらでも...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスで1025文字...
-
エクセルのCOUNTIFが正しくカウ...
-
文字の入力で横バー上段、中断...
-
全角括弧と全角読点の間隔を狭...
-
Excel関数「COUNTIF」で”文字”...
-
エクセルでの漢字、カタカナ、...
-
半角記号、全角記号を含む正規...
-
記号は半角と全角どちらがよい...
-
XMLのタグ名の禁則文字
-
VBAで英数字入力チェックしたい。
-
Replace関数は文字数の制限ある...
-
全角英数文字が嫌われる理由を...
-
文字列中の両丸括弧を取り除くV...
-
2つ以上の連続する空白文字を除去
-
PHPでMySQLに入力した半角スペ...
-
なぜインターネットでは半角カ...
-
VBScriptである文字列に半角文...
-
半角文字と全角文字の判別の仕方
-
半角スペースを全角スペースに
-
半角英数字のみを受け付ける入...
おすすめ情報