最近涉足电子地图方面的项目,以前一直把它看做一头巨大的拦路虎,通过两个月的边学习边进行项目开发,虽然不能说已经掌握,但过程中一些技巧方面的知识,在这做个总结,非常的感谢maolycty(微信)和ywhtyj(微信)的帮助,希望看到的朋友可以避免。
编码的问题:
通常大家都会选择GB2312,我也是根据网上的教程一步步做的,并应用到项目中,由于我的项目涉及到大量的地名,在省市县三级中地名的生僻字可以避免的,但是乡村地名中不免遇到生僻字的问题,如果使用GB2312就会出现“?”的问题,即使转化为utf-8也会出现“?”的问题,这主要是生僻字的编码问题引起的。
现在对比一下GB2312、GBK、GB18030
1、收录汉字 GB2312:基本集bai共收入汉du字6763个和非汉字图形字符682个。 GBK:共收录了21003个汉字。
GB18030 :共收录汉70244个。 2、兼容性 GB2312:基本满足了汉字的计算机处理需要,对于人名、古汉语等方面出现的罕用字,GB
2312不能处理。 GBK:GBK 向下与 GB 2312 编码兼容,向上支持 ISO 10646.1国际标准。 GB18030 :对GB
2312-1980完全向后兼容,与GBK基本向后兼容,并支持Unicode(GB 13000)的所有码位。 3、发布时间
GB2312:由中国国家标准总局1980年发布,1981年5月1日开始实施。 GBK:1995年12月1日制订。 GB18030
:初版于2000年3月17日发布,现行版本于2005年11月8日发布,2006年5月1日实施。 4、编码
GB2312:通常采用EUC储存方法,以便兼容于ASCII。每个汉字及符号以两个字节来表示。
GBK:GBK是采用单双字节变长编码,英文使用单字节编码,完全兼容ASCII字符编码,中文部分采用双字节编码。 GB18030
:GB18030包含三种长度的编码:单字节的ASCII、双字节的GBK(略带扩展)、以及用于填补所有Unicode码位的四字节UTF区块。
通过这些对比我们可以发现,常用的GB2312无法满足地名中生僻字的需要,所以建议朋友们使用GBK或GB18030。