全角转半角,arcgis中处理featureClass数据

时间:2021-09-12 23:39:56
#全角转半角
def strQ2B(featureClass):
#把字符串全角转半角
rows=arcpy.UpdateCursor(featureClass)
for row in rows:
rstring=""
ustring=row.NAME_CHN
for uchar in ustring:
inside_code=ord(uchar)
#全角空格为12288,半角为32
if inside_code==12288:
inside_code=32
else:
inside_code-=65248
#转完之后不是半角字符返回原来的字符
if inside_code<32 or inside_code>126:
rstring+=uchar
else:
rstring+=unichr(inside_code)
row.NAME_CHN=rstring
rows.updateRow(row)
del row
del rows


在网上找了很多相关的例子,但是在处理featureClass时候,效果很不理想,可能是由于arcgis只识别gb18030编码的原因,因此,重新写了一个全角转半角的方法。

这个会修改源数据,所以想要直接拿来用的话,最好先备份一下源数据。

 

def strQ2B(ustring):
"""把字符串全角转半角"""
rstring = ""
for uchar in ustring:
inside_code=ord(uchar)
#全角空格为12288,半角为32
if inside_code==12288:
inside_code=32
else:
inside_code-=65248
#转完之后不是半角字符返回原来的字符
if inside_code<32 or inside_code>126:
rstring+=uchar
else:
rstring+=unichr(inside_code)
return rstring