ogr不能识别unicode字符串


发布日期 : 2013-09-24 05:20:00 UTC

访问量: 53 次浏览

今天碰到一件奇怪的事情。想把原来处理带GPS信息的图片的处理程序修改一下,于是找了一些实验图片,结果运行的时候出现下面的错误: `

Traceback
(most recent call last): File
"/home/bk/progs/pydev/PicGpsInfo/GenGPSInfoFromJpeg2/gpsinfo.py", line 62, in
OnClick_run self.export_info_to_file() File
"/home/bk/progs/pydev/PicGpsInfo/GenGPSInfoFromJpeg2/gpsinfo.py", line 104, in
export_info_to_file easy_ogr.gen_points_from_pointfile(self.**teptxt**,
outshp_pt) File
"/home/bk/progs/pydev/PicGpsInfo/GenGPSInfoFromJpeg2/easy_ogr.py", line 53, in
gen_points_from_pointfile newds = driver.CreateDataSource(extfile) File
"/usr/lib/python2.6/dist-packages/osgeo/ogr.py", line 167, in CreateDataSource
return _ogr.Driver_CreateDataSource(self, _args, *_kwargs) TypeError: in
method 'Driver_CreateDataSource', argument 2 of type 'char const *' `

这个程序是原来写的,当时运行没有问题。不管怎样,先找原因吧。 按原来的思路,先对程序进行重构,再运行,问题依旧。看一下输入、输出的文件路径,也没有问题。Google之,找不到结果。把调用ogr的代码封装之后再封装,还是有问题。费了九牛二虎之力,也没找到问题所在。 再后来,心想还是仔细得一步一步检查吧。把所有的变量及其类型都打印出来检查,终于还是找到了。原来代码中使用了wxpython来获取文件的输入、输出路径,而其返回的值是unicode,但是ogr在创建新文件时,不能识别unicode。 程序最初是在Gentoo下开发的,后来移植到Windows下,使用的GDAL版本比较新。而现在使用的系统是Debian Sqeeze,使用的GDAL的版本是1.6.3。估计可能是版本比较老的原因,以后有机会再检查一下。