Python程序正在空闲状态下运行,但未在命令行中运行
在有人说这是一个重复的问题之前,我只想让你知道,我在命令行中运行这个程序时遇到的错误与我见过的所有其他相关问题都不同 我正在尝试用Python运行一个非常短的脚本Python程序正在空闲状态下运行,但未在命令行中运行,python,windows,python-3.x,unicode,Python,Windows,Python 3.x,Unicode,在有人说这是一个重复的问题之前,我只想让你知道,我在命令行中运行这个程序时遇到的错误与我见过的所有其他相关问题都不同 我正在尝试用Python运行一个非常短的脚本 from bs4 import BeautifulSoup import urllib.request html = urllib.request.urlopen("http://dictionary.reference.com/browse/word?s=t").read().strip() dhtml
from bs4 import BeautifulSoup
import urllib.request
html = urllib.request.urlopen("http://dictionary.reference.com/browse/word?s=t").read().strip()
dhtml = str(html, "utf-8").strip()
soup = BeautifulSoup(dhtml.strip(), "html.parser")
print(soup.prettify())
但是当我用python.exe运行这个程序时,我总是会遇到一个错误<代码>UnicodeEncodeError:“charmap”编解码器无法编码字符“\u025c。我已经尝试了很多方法来解决这个问题,但我成功地将它与将字节转换为字符串的问题隔离开来。当我在空闲状态下运行这个程序时,我得到了预期的HTML。IDLE自动在做什么?我可以使用IDLE的解释程序而不是python.exe吗?谢谢
编辑:
我的问题是由print(soup.prettify())
引起的,但是type(soup.prettify())
返回str
断然的:
我最终决定使用
encode()
和decode()
,因为这两种方法都会引起麻烦。如果有人知道如何实际解决问题,请这样做;另外,谢谢你的回答
我只是想让你们知道,我在命令行中运行这个程序时遇到的错误与我见过的所有其他相关问题不同
不是真的。你和其他人一样
Windows控制台无法打印Unicode。(严格来说这不是真的,但深入了解为什么、何时以及如何从控制台中获取Unicode是一项痛苦的工作,通常不值得这么做。)尝试打印不在控制台有限编码中的字符无法工作,因此Python会给您一个错误
将它们打印出来(我需要一个更简单的解决方案,因为我无法对很多元素进行编码(“utf-8”)
在运行脚本之前,您可以运行命令set pythonionecoding=utf-8
,告诉Python使用和编码可以包含任何字符(因此没有错误),但是任何非ASCII输出仍然会出现混乱,因为其编码与控制台的实际代码页不匹配
(或者干脆使用IDLE。)
我只是想让你们知道,我在命令行中运行这个程序时遇到的错误与我见过的所有其他相关问题不同
不完全是。你和其他人一样
Windows控制台无法打印Unicode(严格来说这不是真的,但深入了解为什么、何时以及如何从控制台中获取Unicode是一项痛苦的练习,通常不值得)。尝试打印不在控制台有限编码中的字符无法工作,因此Python会给您一个错误
将它们打印出来(我需要一个更简单的解决方案,因为我无法对很多元素进行编码(“utf-8”)
在运行脚本之前,您可以运行命令set pythonionecoding=utf-8
,告诉Python使用和编码可以包含任何字符(因此没有错误),但是任何非ASCII输出仍然会出现混乱,因为其编码与控制台的实际代码页不匹配
(或者干脆使用IDLE。)
我只是想让你们知道,我在命令行中运行这个程序时遇到的错误与我见过的所有其他相关问题不同
不完全是。你和其他人一样
Windows控制台无法打印Unicode(严格来说这不是真的,但深入了解为什么、何时以及如何从控制台中获取Unicode是一项痛苦的练习,通常不值得)。尝试打印不在控制台有限编码中的字符无法工作,因此Python会给您一个错误
将它们打印出来(我需要一个更简单的解决方案,因为我无法对很多元素进行编码(“utf-8”)
在运行脚本之前,您可以运行命令set pythonionecoding=utf-8
,告诉Python使用和编码可以包含任何字符(因此没有错误),但是任何非ASCII输出仍然会出现混乱,因为其编码与控制台的实际代码页不匹配
(或者干脆使用IDLE。)
我只是想让你们知道,我在命令行中运行这个程序时遇到的错误与我见过的所有其他相关问题不同
不完全是。你和其他人一样
Windows控制台无法打印Unicode(严格来说这不是真的,但深入了解为什么、何时以及如何从控制台中获取Unicode是一项痛苦的练习,通常不值得)。尝试打印不在控制台有限编码中的字符无法工作,因此Python会给您一个错误
将它们打印出来(我需要一个更简单的解决方案,因为我无法对很多元素进行编码(“utf-8”)
在运行脚本之前,您可以运行命令set pythonionecoding=utf-8
,告诉Python使用和编码可以包含任何字符(因此没有错误),但是任何非ASCII输出仍然会出现混乱,因为其编码与控制台的实际代码页不匹配
(或者干脆使用IDLE。)
UnicodeEncodeError:“charmap”编解码器无法对字符“\u025c”进行编码
控制台字符编码无法表示
IDLE自动在做什么
如果相应字体支持给定的Unicode字符,IDLE将直接显示Unicode(仅BMP字符)
我可以使用IDLE的解释程序而不是python.exe吗
是,运行:
T:\> py -midlelib -r your_script.py
注意:如果使用Unicode API,则可以将任意Unicode字符写入Windows控制台:
T:\> py -mpip install win-unicode-console
T:\> py -mrun your_script.py
看
UnicodeEncodeError:“charmap”编解码器无法对字符“\u025c”进行编码
控制台字符编码无法表示
IDLE自动在做什么
如果相应字体支持给定的Unicode字符,IDLE将直接显示Unicode(仅BMP字符)
我可以使用IDLE的解释程序而不是python.exe吗
<