人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでMySQLにSJISで格納されたデータを表示できません。
[¥]エスケープシーケンスの5Cの問題らしいのですが、”表¥”とやろうにも、
preg_replaceもうまく記述することができません。
これらの問題に対する解決法をご存知でしたらお教えください。
http://www.hatena.ne.jp/1114502073

●質問者: nakeyouguisu
●カテゴリ:ウェブ制作
✍キーワード:MySQL PHP SJIS エスケープ ケン
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● bmkage
●10ポイント

http://www.komonet.ne.jp/~php/faq.htm

PHP???????^???E????

このページの「エラー1」では ダメでしょうか

◎質問者からの返答

ん・・・


2 ● upride
●10ポイント

http://tsuttayo.sytes.net/mysql/setting/

MySQLのチューニング

my.iniの文字セットの設定をshift-jisに

することで回避する方法があります

(レンサバだといじれないですが・・)

PHP側の文字セットとHTMLの文字セット

Mysqlの文字セットと3箇所の設定の

組み合わせを考えると回避できます。

3箇所全部合わせるとベストなのですが

設定をいじれない環境の場合

mbstring系の関数を使うと回避できる

と思います

◎質問者からの返答

レンタル鯖なので苦労しています。。。。

スクリプト処理でなんとかしようにも、そのスクリプトが処理できないのでなんとも苦労中です。


3 ● upride
●50ポイント

2回目です。

もしかしてeuc-jpの文字セットに設定しているMySQLに

強引にShift-JISのデータを格納してないですか?

(画面のPHPの文字セットがShift-JISだから)


この場合文字セットShift-JIS→euc-jpに変換して見て下さい

$hoge = mb_convert_encoding($hoge,’EUC-JP’,’SJIS’)

で、この$hogeをInsertするとeuc-jpでMySQLに格納できます


で、反対にデータを取得して表示する場合は

$hoge = mb_convert_encoding($hoge,’SJIS’,’EUC-JP’)

としてShift-JISに変換した$hogeを表示させます

(変換後の$hogeはpreg_replaceとかしなくても正しい表示のはずです

◎質問者からの返答

ありがとうございました。

PHP←→MySQLの箇所で文字化けしていたようです。テストプログラムでちょうど同じような理由にたどりついたところです。

大変助かりました。

解決しました。

PHPの関数。aimとsrcが…どうしても不慣れだと逆を指定してしまう…

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ