ASN归属地":"安徽省合肥市巢湖市 联通 ", "iP段":"58.242.38.0 - 58.242.38.255", "兼容IPv6地址":"::3AF2:269B", "映射IPv6地址":"::FFFF:3AF2:269B", "ip_c_list":[{"begin":988947968, "end":988948223, "ct":"中国", "prov":"安徽省", "city":"合肥市", "area":"巢湖市", "idc":"", "yunyin":"联通", "net":""}], "zg":0}; var ip_begin = 988948123; <
得到这样的字符串,接下来的工作就不是很难了,慢慢的打散就能把里面的地理位置提取出来。然而,以这个字符串在本地测试打散时出现了一点意外。大概是出现了乱码,于是又研究如何转换编码。
// 检测字符的编码格式
$encode = mb_detect_encoding($string, array('ASCII','UTF-8','GB2312','GBK','BIG5'));
echo $encode;
// 转换编码格式
if ($encode == 'UTF-8'){
$string = iconv('UTF-8','GBK',$string);
}
起初,我们得到的编码是UTF-8,就用上面的代码转换为gbk。然而,后来测试时不知道怎么的又变成了“EUC-CN”。搜索它,是这样说的:
GB2312最常用的表示方法
EUC-CN是GB2312字符编码标准的一种实现方式,在浏览器编码表中常以“GB2312”名称指代,采用双字节编码结构 [1] [4]。该编码兼容ASCII字符集,通过区位码转换机制将汉字映射至特定编码 [3-4]。
作为GB2312在Windows系统中的常见实现,EUC-CN被用于记事本文件编码转换及字幕文件解码场景 [1-2]。其编码体系基于ISO2022标准,使用94x94字符平面定义6763个汉字及682个符号,同时支持厂商扩展字符 [3] [5]。相较于HZ和ISO-2022-CN等7位编码方案,EUC-CN直接采用8位编码空间实现汉字表示 [3]
后来的测试中不转码也行,因为和论坛的gbk应该没有什么太大的区别。