ArcMap中使用Python遇到中文字段名错误的解决方法
2012-10-10 21:20
627 查看
http://www.linuxidc.com/Linux/2012-07/66715p2.htm
前一段时间遇到一个客户需要在ArcMap中批量的通过等高线图生成DEM,但是等高线图中的高程字段名称全部是中文,大家都知道Python遇到中文就会出现各种诡异状况,于是我被用户找去解决问题。
先看看Python的版本,是2.6.5,比用户的2.5.1要高,不知道这个问题能不能在自己电脑上重现。
好了,创建一个ChineseTest.py,内容如下:
测试一下,结果:
好吧,悲剧了,自己电脑上的版本比用户高,没法重现这个错误,只能到现场去解决了。
到用户现场,用上面的同样方式输出“中文”两个字,出现问题:
嗯,先把编码方式换成Utf-8尝试下:
错误依旧……
既然它提供了网址,那就看看吧。简单地浏览一下,终于知道如果文件里有非ASCII字符,需要在第一行或第二行指定编码声明。把ChineseTest.py文件的编码重新改为ANSI,并加上编码声明:
实验结果出来了:
很好,成果喜人,接着就是用这个方式来代替我们在高程字段中使用的中文字符。
结果依然悲剧,报取不到这个字段(因为没有用户数据,无法在这里给大家截图看了)。
鼓捣了好长时间,依旧是这个问题,没有任何进展。我只能建议用户先把字段中的中文,改成英文别名,这样就OK了,理论上确实可行,但是用户有9000多个shp文件,改完都成仙了~~
继续研究,终于发现最终的解决办法需要先修改编码方式,再将中文字段转换成unicode就可以识别了。
总结一下,解决方法是:
开头加上
#coding = gbk
之后将需要读取的中文字段名称转换为unicode,转换方法为:
s = “ 中文”
st = unicode(s,"gb2312")
这样就能安全的使用这些字段名了。
ArcMap中使用Python遇到中文字段名错误的解决方法
前一段时间遇到一个客户需要在ArcMap中批量的通过等高线图生成DEM,但是等高线图中的高程字段名称全部是中文,大家都知道Python遇到中文就会出现各种诡异状况,于是我被用户找去解决问题。先看看Python的版本,是2.6.5,比用户的2.5.1要高,不知道这个问题能不能在自己电脑上重现。
好了,创建一个ChineseTest.py,内容如下:
测试一下,结果:
好吧,悲剧了,自己电脑上的版本比用户高,没法重现这个错误,只能到现场去解决了。
到用户现场,用上面的同样方式输出“中文”两个字,出现问题:
嗯,先把编码方式换成Utf-8尝试下:
错误依旧……
既然它提供了网址,那就看看吧。简单地浏览一下,终于知道如果文件里有非ASCII字符,需要在第一行或第二行指定编码声明。把ChineseTest.py文件的编码重新改为ANSI,并加上编码声明:
实验结果出来了:
很好,成果喜人,接着就是用这个方式来代替我们在高程字段中使用的中文字符。
结果依然悲剧,报取不到这个字段(因为没有用户数据,无法在这里给大家截图看了)。
鼓捣了好长时间,依旧是这个问题,没有任何进展。我只能建议用户先把字段中的中文,改成英文别名,这样就OK了,理论上确实可行,但是用户有9000多个shp文件,改完都成仙了~~
继续研究,终于发现最终的解决办法需要先修改编码方式,再将中文字段转换成unicode就可以识别了。
总结一下,解决方法是:
开头加上
#coding = gbk
之后将需要读取的中文字段名称转换为unicode,转换方法为:
s = “ 中文”
st = unicode(s,"gb2312")
这样就能安全的使用这些字段名了。
相关文章推荐
- ArcMap中使用Python遇到中文字段名错误的解决方法
- Python结巴中文分词工具使用过程中遇到的问题及解决方法
- 记录使用python时遇到的中文 编码问题与解决方法
- 【Python】使用pip install时出现UnicodeDecodeError错误解决方法
- 在arcgis使用python脚本进行字段计算时是如何解决中文问题的
- ASP 在Windows 2003 server使用纯代码上传大文件遇到的错误,及解决方法
- Python3中遇到的错误和解决方法
- 解决Python使用pip安装时遇到的解码错误问题
- Python django使用多进程连接mysql错误的解决方法
- 【随笔记录】python 处理中文时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方法
- python中遇到包含UTF-8编码中文的列表或字典的输出的解决方法
- Delphi2010中ADOQuery使用Oracle的Blob字段出现错误解决方法
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- 在arcgis使用python脚本进行字段计算时是如何解决中文问题的
- python中遇到包含UTF-8编码中文的列表或字典的输出的解决方法
- python3使用web.py遇到的找不属性的错误解决
- ubuntu1404下安装caffe及配置python接口pycaffe遇到的各种错误的解决方法
- 自己编程中遇到的Python错误和解决方法汇总整理
- PHP 安装memcache后,使用时遇到的错误 解决方法
- 【Python】使用pip install时出现UnicodeDecodeError错误解决方法