2015-08-27 193 views
-1

我有一個shapefile(.shp)字段名稱wriiten日語。我想用下面的程序閱讀日文的字段名稱:將Unicode字段轉換爲文本

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–¼ 

如何獲取readabe日語文字的字段名稱?

我也試過爲x.decode('utf8'),但得到錯誤信息UnicodeDecodeError: 'utf8' codec can't decode byte 0x95 in position 0: invalid start byte

如何做到這一點的傢伙?

+0

'打印類型(X)''給出雖然string'! – gudlife

回答

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! 
+0

'UnicodeDecodeError:'utf8'編解碼器無法解碼位置3中的字節0x82:使用'print unicode(x,'utf-8')無效的起始字節'''''' – gudlife

+0

嗯...... Idk如果有幫助,但0x82是控制字符在unicode ... – Dportology

+0

嘗試其他編碼可能不是utf8。嘗試ISO-8859-1 – Dportology