gpt4 book ai didi

python - 在访问表中使用 Unicode 值并连接标签表达式

转载 作者:太空宇宙 更新时间:2023-11-03 19:06:17 25 4
gpt4 key购买 nike

我正在 ArcGIS 中使用 unicode 值。基本上,我试图在访问表中设置一个用于存储 unicode 值的字段。我发现这个脚本示例可以对 unicode 值进行编码。

import locale
locale.getdefaultlocale()
print u'Libert\u00e9'

这将返回:

Liberté

末尾带有重音符号 é

以我无限的智慧,基于在 python 中使用 unicode 编码的非常菜鸟的经验,我认为我可以做到这一点:

  1. 在访问表中创建文本字段

  2. 使用 unicode 值填充该字段,因此 u00e9

  3. 定义一个Python函数,例如

像这样:

def FindLabel ( [Unicode] ):
import locale
locale.getdefaultlocale()
return u'Libert\ + [Unicode] + "'"

我正在使用它在 ArcGIS 中创建标签。

这不起作用,我已经尝试了一下 return 语句,但我似乎无法让它工作......或者真的知道我想做的事情是否应该工作。

基本上,如果我确实让它工作,我想将 unicode 存储在访问表的字段中,这样我就可以从中定义一个 python 函数。

但话又说回来,也许我已经出去吃午饭了,因为我在这里尝试的事情。

欢迎任何建议!迈克

最佳答案

对于 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'

关于python - 在访问表中使用 Unicode 值并连接标签表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14635503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com