相关疑难解决方法(0)

"Unicode错误"unicodeescape"编解码器无法解码字节...无法在Python 3中打开文本文件

我在Windows 7机器上使用python 3.1.俄语是默认的系统语言,utf-8是默认编码.

看看上一个问题的答案,我尝试使用"编解码器"模块给我一点运气.以下是一些例子:

>>> g = codecs.open("C:\Users\Eric\Desktop\beeline.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#39>, line 1)
>>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#40>, line 1)
>>> g = codecs.open("C:\Python31\Notes.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 11-12: malformed \N character escape (<pyshell#41>, line 1)
>>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", …
Run Code Online (Sandbox Code Playgroud)

python unicode python-3.x

223
推荐指数
6
解决办法
48万
查看次数

如何在Python中使用代理对?

这是转换为表情符号的后续行动.在那个问题中,OP有一个json.dumps()带有表情符号代表对的表情符号的编码文件 - \ud83d\ude4f.他/她在阅读文件和正确翻译表情符号时遇到问题,正确的答案json.loads()文件中的每一行,json模块将处理从代理对转换回(我假设是UTF8编码的)表情符号.

所以这是我的情况:说我只有一个常规的Python 3 unicode字符串,其中包含一个代理项:

emoji = "This is \ud83d\ude4f, an emoji."
Run Code Online (Sandbox Code Playgroud)

如何处理此字符串以获取表情符号的表示?我希望得到这样的东西:

"This is , an emoji."
# or
"This is \U0001f64f, an emoji."
Run Code Online (Sandbox Code Playgroud)

我试过了:

print(emoji)
print(emoji.encode("utf-8")) # also tried "ascii", "utf-16", and "utf-16-le"
json.loads(emoji) # and `.encode()` with various codecs
Run Code Online (Sandbox Code Playgroud)

一般来说,我得到一个类似的错误UnicodeEncodeError: XXX codec can't encode character '\ud83d' in position 8: surrogates no allowed.

我在Linux上运行Python 3.5.1,$LANG设置为en_US.UTF-8.我在命令行的Python解释器和Sublime Text中运行的IPython中运行这些示例 - 似乎没有任何差异.

python unicode surrogate-pairs python-3.x

25
推荐指数
2
解决办法
6502
查看次数

如何将 unicode 转换为 unicode 转义文本

我正在加载一个包含一堆 unicode 字符的文件(例如\xe9\x87\x8b)。我想在 Python 中将这些字符转换为其转义 unicode 形式 ( \u91cb)。我在 StackOverflow 上发现了几个类似的问题,包括Evaluate UTF-8 Literal escape strings in a string in Python3,它几乎完全符合我的要求,但我不知道如何保存数据。

例如: 输入文件:

\xe9\x87\x8b

Python脚本

file = open("input.txt", "r")
text = file.read()
file.close()
encoded = text.encode().decode('unicode-escape').encode('latin1').decode('utf-8')
file = open("output.txt", "w")
file.write(encoded) # fails with a unicode exception
file.close()
Run Code Online (Sandbox Code Playgroud)

输出文件(我想要的):

\u91cb

python unicode python-3.x

3
推荐指数
1
解决办法
6804
查看次数

标签 统计

python ×3

python-3.x ×3

unicode ×3

surrogate-pairs ×1