1

現在、この関数を使用して、MySQL のフィールド値を少し難読化し、直接ダンプから保護しています。それはすべてうまく機能し、値は正しく保存されますが、マルチバイト文字列を保存しようとするとどうなりますか?

以下に例を示します。文字列álexをエンコードしてみましょう:

<?
$v = xorencode('álex');
// step 1 - encode
echo $v."\n";
// step 2 - decode
echo xorencode($v);
?>

難読化された文字列が最初に表示され、次に再びálexが表示されます。ここで、MySQL テーブルのVARCHARフィールドに保存しようとしてから選択すると、utf 文字列がなくなり、代わりにgllexとして返されます。

MySQL テーブルとフィールドの照合順序は utf8_general_ci、ファイルは UTF-8、SET NAMES utf8接続後の i であることに注意してください。これに対する回避策はありますか?

ありがとう

4

0 に答える 0