我正在使用ArcGIS中的unicode值。基本上,我试图在访问表中设置一个字段,用于存储unicode值。我找到了这个编写unicode值的脚本示例。
import locale
locale.getdefaultlocale()
print u'Libert\u00e9'
返回:
Liberté
最后带有重音é
在我的无限智慧中,基于在python中使用unicode编码的新手经验,我想我可以这样做:
在访问表中创建文本字段
使用unicode值填充该字段,因此u00e9
定义一个类似
像这样:
def FindLabel ( [Unicode] ):
import locale
locale.getdefaultlocale()
return u'Libert\ + [Unicode] + "'"
我正在使用它在ArcGIS中创建标签。
这不起作用,我已经玩了一些返回语句,但我似乎无法让它工作......或者真的知道我正在尝试做什么应该工作。
基本上,如果我确实让它工作,我想将unicode存储在访问表的字段中,所以我可以从中定义一个python函数。
但话说回来,也许我正在尝试在这里尝试午餐。
欢迎任何建议!麦克
答案 0 :(得分:1)
似乎对Unicode的性质有一点误解。 Unicode是严格存在于Python程序范围内的东西。将数据写入文件或数据库表中的字段时,必须对该数据进行编码。
有了这个基础,我们继续讨论代码。与locale
相关的两行目前没有做任何有效的工作。我怀疑你想做的事情更像是:
import locale
# if you're on Windows in the US most likely
# the following is returned: ('en_US', 'cp1252')
deflang, defencoding = locale.getdefaultlocale()
# now that you have encoded your data (from Unicode)
# you may commit it to the database
write_this_to_db = u'Libert\u00e9'.encode(defencoding)
# -> 'Libert\xe9'