いろいろと検索などして探してみたのですが、情報が得られず困っております。お分かりの方おられましたらご教示いただけると幸いです。
環境
Apache 2059
PHP 5.1.6
MySQL 5.0.24a
WindowsXP SP2
PHPソース すべてUTF8書いてます。
HTML出力もヘッダーでUTF-8で表示しています。
my.cnfでは
すべて default-character-set=utf8
で統一しています。
さらに、PHPからMySQLに接続したときに
set names utf8;
もしてます。
この環境で、 ~ のみが文字化けしてしまいます。
たとえば、
"あ~あ" とINSERTすると
SELECTしてみると "あ?あ" となってしまいます。
~以外の文字は問題ありません。
またPHP上で発行クエリ文を表示させると、まだ~となっているので、MySQL側の問題だとは思っているのですが、どう設定すればよいかわからないところです。
MySQL Query Browzerからでも同様になってしまいます。
ご存知の方おられましたら、情報よろしくお願いします。
No.1ベストアンサー
- 回答日時:
~は結構鬼門で、UTF8では2つのコードが割り当てられています。
「~(U+FF5E)」と「~(これが上下反転した形状)(U+301C)」です。
SJISからUTF8に変換すると後者に割り当てられるようで、UTF8を
SJISに変換すると?になってしまう、という現象があったと覚えています。
そのときの回避策は出力時にバイナリ置換してU+301CをU+FF5Eに
しました。
回答ありがとうございます。
なるほど、なかなか一筋縄にはいかないものなんですね。
いろいろ試してみて、あるテーブルのみで起こっていたので、なぜかなと悩んでいたのですが、エクスポートで、create table文を出力してみると、なぜか一部のカラムのみ文字コードが ujis として記録されていたようでした。
自分では設定したつもりも記憶もなかったので気づきませんでした。基本はデータベース単位でのみ文字コードを決めており、テーブル単位でも文字コードを設定できることは知っていましたが、カラム単位でまでできるとは知りませんでした。
そのカラムに設定されていた文字コード指定を削除したところ、直りました。
文字コードに関しては、よく問題になってしまいますが、勉強になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- PHP PHP MySql ページング 2 2022/09/20 06:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MYSQLで日本語が入力できない
-
MySQLの文字コード変換
-
レンタルサーバーでphpmyadmin...
-
MySQL5.1の文字列サイズは文字...
-
接続ができません
-
ODP.NETのバージョン確認
-
参考書に従って入力したつもり...
-
INT型は金額の型に使用するべき...
-
MySQLカラム名は日本語と英数字...
-
プライマリーキーの昇順でソー...
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
VBAで変数内に保持された二次配...
-
Column '' not found.
-
SQLiteについて
-
LIKE で清音と濁音・半濁音を区...
-
insertでのエラーについて
-
MySQLにリモートホストから接続...
-
列数が多いと結果が行単位に改...
-
perlのDBIからmysqlにINSERTINT...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
さくらのレンタルサーバで文字...
-
php・Mysql Like文で日本語が使...
-
DB内の日本語データがPHPで取得...
-
MYSQLで日本語が入力できない
-
UTF-8にしても文字化けが直らない
-
cseデータ閲覧時の文字化け
-
Mysqlの文字化けについて
-
日本語をinsert時に文字化け
-
設定が間違っていないのに文字...
-
検索で濁点や半濁点をヒットさ...
-
データの移行について
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
ODP.NETのバージョン確認
-
ERROR 1045 (28000) (using pas...
-
like句を使って日本語を検索す...
-
VBAで変数内に保持された二次配...
-
MySQLカラム名は日本語と英数字...
-
INT型は金額の型に使用するべき...
おすすめ情報