【问题标题】:'ascii' codec can't encode character u'\u503c''ascii' 编解码器无法编码字符 u'\u503c'
【发布时间】:2018-04-15 19:57:25
【问题描述】:

我正在尝试使用 pyratemp 模块在文件中进行模板替换。它适用于一般的 ascii 和 UTF-8 格式文件。但是,我的文件格式是: "UTF-8 Unicode C 程序文本,带有 CRLF 行终止符"

我在 sql 中有一些变量要替换。所以,我正在使用 pyratemp 模块进行如下处理。

import pyratemp
data_hash = {}
data_hash['tab_name'] = 'svm_table'
sourceFile = "sample.sql"
temp_sql = pyratemp.Template(filename=sourceFile, data=data_hash, encoding='utf-8')

运行脚本:

python template_proc.py

Traceback(最近一次调用最后一次): 文件“template_proc.py”,第 11 行,在 打印 temp_sql UnicodeEncodeError: 'ascii' codec can't encode character u'\u503c' in position 196: ordinal not in range(128)

谁能给我建议的解决方案。

【问题讨论】:

标签: python-2.7 unicode encoding utf-8


【解决方案1】:

我想你正在使用 Python2。用 Python2 读取 unicode 字符很困难,我建议你试试这个 ... temp_sql = pyratemp.Template(filename=sourceFile, data=data_hash, encoding='utf-8') encoded_temp_sql=temp_sql.encode('utf-8', errors='ignore')

有关 Python2 如何读取 UNICODE 字符的更多信息,您可以查看Python HowTo

【讨论】:

    猜你喜欢
    • 2018-05-05
    • 1970-01-01
    • 2013-04-21
    • 2015-04-13
    • 2017-02-19
    • 2018-07-07
    • 2011-04-05
    • 2018-05-04
    相关资源
    最近更新 更多