みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPの5Cに関する文字化け

またまた文字化けの件で質問です。
Shift_Jisで書いたPHPでMysqlのデータベースにupdateしています。

$sql .= "UPDATE abc SET";
$sql .= " a= '".addslashes($a)."'";

のようなSQL文です。

このような場合
フォームから「表示」を送信した場合は
「update abc SET a='表\示'」となり正常に更新されます。
しかし最後に5Cの文字ある場合
「update abc SET a='テーブル表\'」となり
'(シングルクォーテーション)がエスケープされて
エラーになってしまいます。

そのような場合はどうしたらよいのでしょうか?
よろしくお願いします。

投稿日時 - 2005-06-07 09:37:53

QNo.1434159

すぐに回答ほしいです

質問者が選んだベストアンサー

内部エンコーディングがSJISになっているからです。

PHPは内部エンコーディングにSJISを選択した場合、2バイト文字の処理の際にこうなります。

内部エンコーディングをEUC-JP等に変更する必要があります。php.iniの設定で文字コード変換を自動で行う方法もあります。

参考URL:http://www.php.net/manual/ja/ref.mbstring.php

投稿日時 - 2005-06-07 12:13:04

お礼

ありがとうございます。
なかなか難しいです。
いろいろやってみます。

投稿日時 - 2005-06-08 08:58:37

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

どーしてもSHIFT_JISで書きたいならば、
stripslashes()とかつかって、ちょっとトリッキーな書き方すれば対応可能

投稿日時 - 2005-06-07 16:56:59

あなたにオススメの質問