ホームページ > バックエンド開発 > PHPチュートリアル > トランスコーディングの問題について

トランスコーディングの問題について

WBOY
リリース: 2016-06-23 14:24:33
オリジナル
1515 人が閲覧しました

import 503-9256962-4382268 Failure -1
SQL 構文にエラーがあります。'054-246-0787','JPS0001' ,' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。 0243-BK」、「iphone 4 アーム(ブラック)」、「1」、「??」 ? ' 行 1

トランスコーディングを実行したところ、上記のエラーが報告されました:
$recipient_name=mb_convert_encoding(addslashes($u[16]), 'UTF-8','UTF-8,sjis-win, eucjp-win');



echobase64_encode($u[16]) 結果: mGiRg4xc

トランスコード後の出力は正しい: "??Gui" ですが、データベースに書き込む方法がわかりません。 「Gui」を含むものだけがデータベースへの書き込みに失敗するとエラーが報告されます。

この問題を解決する方法はありますか? ?


ディスカッションへの返信 (解決策)

データベース フィールドのエンコーディングはサポートされていません

谷口 圭
??Kyu

出力を再入力したところ、名前にすべて "" が含まれていたのが原因でしょうか。 ?どうやって解決すればいいでしょうか?

$s = base64_decode('mGiRg4xc');echo '字符集 ', mb_detect_encoding($s, 'UTF-8,sjis-win,eucjp-win'), '<br>';echo '16进制内码 ', bin2hex($s), '<br>';echo 'utf-8 ', $t = mb_convert_encoding($s, 'utf-8', 'UTF-8,sjis-win,eucjp-win'), '<br>';echo '16进制内码 ', bin2hex($t);
ログイン後にコピー

文字セット JIS-win
16 進内部コード 986891838c 5c この 5c は 16 進内部コード
utf-8 ??Gui
16 進内部コード e9b7b2e5b7a3e59cad

したがって、次のことが必要です
$recipient_name=mb_convert_encoding ($u[16] , 'UTF-8','UTF-8,sjis-win,eucjp-win');
の代わりに $recipient_name=mb_convert_encoding(addslashes($u[16]), 'UTF-8 ','UTF-8 ,sjis-win,eucjp-win');
つまり、エスケープにaddslashesを使用することはできません
'をエスケープするには、 str_replace("'", "'", $s) を使用する必要があります

xuzuning :

大丈夫ですエスケープせずに質問したいのですが、挿入したコンテンツが多くの国のものであるため、エスケープしないとどの国に特別な名前が含まれているかがわかりません。書き込みも失敗します。この状況を解決する方法はありますか?




まずトランスコードしてからエスケープします

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート