将unicode字段转换为文本

时间:2015-08-27 15:34:27

标签: python unicode ogr

我有一个shapefile(.shp),其字段名称是日语的wriiten。我想使用以下程序阅读日语字段名称:

import ogr
infile = r"E:\shp\test.shp"
ds = ogr.Open(infile,0); slayer = ds.GetLayer(0)
fieldNames = [slayer.GetLayerDefn().GetFieldDefn(i).GetName() for i in range(0,slayer.GetLayerDefn().GetFieldCount())]

for x in fieldNames:
    print x

但是,它打印出来如下,这是不可读的。

ツwヘW
ツxヘW
’c’n–¼

如何获得字段名称的日语文本?

我也尝试x.decode('utf8'),但收到错误消息UnicodeDecodeError: 'utf8' codec can't decode byte 0x95 in position 0: invalid start byte

怎么做呢?

1 个答案:

答案 0 :(得分:0)

这里不是正面的,只是试图提供帮助,但也许尝试将字符串转换为unicode序列,如此?

a = "Hello, World!"
u = unicode(a,'utf-8')

print type(a)
print a
print type(u)
print u

输出:

<type 'str'>
Hello!
<type 'unicode'>
Hello!