如何识别utf-8或gbk编码的中文内容
上一篇 / 下一篇 2007-11-28 11:14:49 / 个人分类:其它
5XY'kBQ&L;Spw0使用tcpdump抓包得到下面的数据:
9xsh l2f;^*XDJ00x0040 6c2e 6a73 703f 444e 3d43 2533 6443 4e25 l.jsp?DN=C%3dCN%
pdC&F dh7O00x0050 3263 4f25 3364 4346 4341 2532 3054 4553 2cO%3dCFCA%20TES51Testing软件测试网i+[CL)x9t2r8U v/Q
0x0060 5425 3230 4341 2532 634f 5525 3364 4351 T%20CA%2cOU%3dCQ51Testing软件测试网)S(M0S)]7m M
0x0070 4342 2532 634f 5525 3364 656e 7465 7270 CB%2cOU%3denterp
5BT[ {&y^00x0080 7269 7365 7325 3263 434e 2533 6430 3431 rises%2cCN%3d04151Testing软件测试网yLeq W]!mW
0x0090 2534 3034 3131 3131 3125 3430 2545 3625 %40411111%40%E6%
LF/\2E0g00x00a0 3932 2541 3425 4539 2539 3425 3830 2534 92%A4%E9%94%80%451Testing软件测试网B+^-X%y/s-QG
0x00b0 3030 3030 3030 3030 3125 3030 2653 4e3d 000000001%00&SN=
w)J.@M({ {[s00x00c0 3631 6266 6661 3836 6533 6536 6261 6163 61bffa86e3e6baac51Testing软件测试网+Na,YZDK
0x00d0 3239 3061 3063 6134 3738 6464 3064 3865 290a0ca478dd0d8e51Testing软件测试网 q`8]Q4n_
0x00e0 2530 3026 696e 666f 7365 633d 3139 3225 %00&infosec=192%51Testing软件测试网%o6`Z7qr'{rK)?V
0x00f0 3265 3136 3825 3265 3025 3265 3131 3620 2e168%2e0%2e116.51Testing软件测试网k+u Z(g sMF5O}
51Testing软件测试网V@_ M/t)g7i3N2o q V
可以使用下面的方法确定%E6%92%A4%E9%94%80%部分是乱码,还是中文字符的正确表示。
1. 首先确定编码是utf-8还是gbk。由于utf-8用三个码表示一个字,gbk用两个码表示一个字,“%E6%92%A4%E9%94%80%”预期为撤销两个字,因此确定该编码为utf-8编码;
2. 创建一个utf-8编码的文本文件,内容为预期的“撤销两个字”,然后使用UltraEdit打开该文件,切换到十六进制模式(选择工具栏上的“H”),utf-8的前三个码为文件头,因此从第四个码开始与“%E6%92%A4%E9%94%80%”进行比较(%为分隔符),如果一致表示该段编码为中文“撤销”;
3. 如果不一致,将该段编码中的每个码替换到文件中,然后保存,切换到普通模式查看(或直接使用记事本查看),如果为不可打印的字符,则为乱码;
4. 如果编码为gbk编码,则在创建文件时,编码选择ANSI,其他步骤同上。
q"w-o8F\0jx:D0 注,在UltraEdit中查看ASCII表:选择view->ASCII table,调出ASCII表51Testing软件测试网~ M*kA%SR Gl6lp
51Testing软件测试网"P0[yj![.u.\ z