【发布时间】:2012-09-11 22:21:31
【问题描述】:
有一个可爱的脚本,它以原始 unicode 打印出一堆文本来处理所有不同的语言。
脚本在 ascii carater 和非拉丁语言(印地语、中文等)中运行良好
但是它无法打印出诸如“锓è”等字符的原始值......
而不是在文件中的 print "é" 中打印原始 unicode 值 \u00E9,这反过来会在网页上显示菱形询问标记。
f = codecs.open(newFilePathAndName(path,filename,language),encoding='raw_unicode_escape', mode='w')
...
f.write(outputString)
当我在脚本中执行“打印”时,它会将字符 é 显示为 \xe9
有什么想法吗?
唯一想到的是放置一个正则表达式,将 \xe 替换为 \u00
【问题讨论】:
-
读取数据时,使用正确的编解码器对数据进行解码。在 Python 2 中您将得到一个
unicode对象或在 Python 3 中得到一个str对象。写入数据时,请使用适当的编解码器对其进行编码。当您在某处显示数据时,了解此显示设备需要哪种编解码器非常重要。 -
另外,您应该提供一个工作的最小代码示例。在您的示例中,我看不到
outputString的来源。