当我将代码插入MySQL时,它发生了变化。

4
我使用了这个网页 http://javascriptobfuscator.com/default.aspx 来混淆一个小脚本。
$(document).ready(function(){
$("#likee").fadeOut("fast");
}); 

混淆的代码如下:

$(document)["\x72\x65\x61\x64\x79"](function (){$("\x23\x6C\x69\x6B\x65\x65")["\x66\x61\x64\x65\x4F\x75\x74"]("\x66\x61\x73\x74");} );

我正在使用一个表单将混淆的代码插入到mysql中。然而,当我插入代码时,出现了这个错误:

$(document)["x72x65x61x64x79"](function (){$("x23x6Cx69x6Bx65x65")["x66x61x64x65x4Fx75x74"]("x66x61x73x74");} );

有人知道为什么要删除反斜杠吗?

没有反斜杠,我的代码还能正常运行吗?


9
你是否先使用 mysql(i)_real_escape_string 函数转义了你的输入? - bwoebi
1
不要混淆 "x23""\x23",它们完全不同。前者是三个字母(x、2、3),而后者是一个单独的字符。 - Marc B
2
add your php code also - pinkpanther
1个回答

0

我认为这与编码有关。我猜测您正在使用utf8编码格式将数据插入到文本/varchar(或某种类型)列中。

utf8编码格式仅接受可以用3个字节表示的Unicode字符,但\x23字符需要4个字节,因此MySQL会剥离该字符。

如何解决? 您是否拥有mysql 5.5或更高版本?您可以将列编码从utf8更改为utf8mb4。此编码允许4字节字符。

来源:{{link1:“尝试通过JDBC将UTF-8插入MySQL时出现“不正确的字符串值”?”}}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接