- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 xml.etree 来读取和写入包含 € 符号的 xml 文件。
我的简化代码如下所示:
optionsdirectory = os.getcwd()
optionsfile = os.path.join(optionsdirectory, "conf")
optionstree = ET.parse(optionsfile)
options = optionstree.getroot()
for option in options:
if option.tag == "currency":
option.text = "€"
optionstree.write(optionsfile, encoding="UTF-8")
运行时出现以下错误:
File "C:\curr.py", line 8
optionstree.write(optionsfile, encoding="UTF-8")
File "C:\Python27\lib\xml\etree\ElementTree.py", line 815, in write
serialize(write, self._root, encoding, qnames, namespaces)
File "C:\Python27\lib\xml\etree\ElementTree.py", line 934, in _serialize_xml
_serialize_xml(write, e, encoding, qnames, None)
File "C:\Python27\lib\xml\etree\ElementTree.py", line 932, in _serialize_xml
write(_escape_cdata(text, encoding))
File "C:\Python27\lib\xml\etree\ElementTree.py", line 1068, in _escape_cdata
return text.encode(encoding, "xmlcharrefreplace")
UnicodeDecodeError: 'ascii' codec can't decode byte 0x80 in position 2114: ordinal not in range(128)
有没有办法使用 xml.etree 将 € 符号写入 xml 文件?
最佳答案
您需要使用 unicode 文字。使用 unicode 转义而不是字符会更容易:
option.text = u"\u20AC" # Euro sign
当您不使用 unicode 文字而是使用字节(字符串)文字时会发生什么,Python 会尝试使用默认编码(ASCII)将值解码为 unicode 文字。这会导致您看到的 UnicodeDecodeError。
如果您真的确实想要使用非转义字符,请确保在顶部指定源文件的编码:
# -*- coding: utf-8 -*-
并确保您的编辑器使用 UTF-8 来保存文件。不过,您仍然必须使用 unicode 文字:
option.text = u"€"
关于python - 使用 xml.etree 在 Python 中编写包含欧元符号 (€) 的 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12655836/
我正在使用 python 正则表达式查找字符串中的所有价格。到目前为止,我只是无法正确管理符号。此代码,输入:'happy$37.54000happy$34$3454$3333€27.80€3.00.
如何使用 imagettftext() 创建 € 符号?我使用的字体“Lucida Grande”包含欧元符号。€ 也不起作用。 最佳答案 参见the documentation (强调我的): Th
我正在使用 AngularJS 货币过滤器,但在正确显示欧元符号时遇到了问题。 HTML: {{ price.priceTotal | currency: myController.getPriceC
为了练习,我需要构建一个非常简单的货币转换器,仅以设定汇率 (0.91/1.09) 将货币从美元转换为欧元,反之亦然。我希望我的 App.js 文件尽可能模块化。另外,我想使用钩子(Hook)(不是类
我有一个 XML 文档 file.xml它以 Iso-latin-15(又名 Iso-Latin-9)编码 €.txt 从我最喜欢的文本编辑器中,我可以看出这个文件以 Iso-Latin-1
我可以将 Alt 键与数字键盘结合使用来键入符号,但如何以编程方式将符号(英镑、欧元、版权)插入文本框? 我有一个配置屏幕,所以我需要动态创建\uXXXX。 最佳答案 在 C# 中,Unicode 字
我使用此 URL 在 CS:GO 容器中一次获取 100 个结果。我用 {currency} 代替 3,用 {start} 代替 100 的倍数,我的问题是 currency=3 code> 似乎不是
我的 Angular 应用程序需要以不同格式显示货币,例如:$、£、2.105,10€ - + 之后的欧元符号不同的分隔符 - 这可以通过包含 i18n angular-locale_de-de.js
我想使用欧元货币构建一个 PayPal 支付 URL。 我在以下位置找到了欧元 (EUR) 的国家/地区代码: https://developer.paypal.com/docs/classic/ap
我是一名优秀的程序员,十分优秀!