当前位置: 首页 > 面试题库 >

如何在Python 3中设置sys.stdout编码?

韩淇
2023-03-14
问题内容

在Python 2中设置默认输出编码是一个众所周知的习惯用法:

sys.stdout = codecs.getwriter("utf-8")(sys.stdout)

这会将sys.stdout对象包装在编解码器中,该编解码器以UTF-8对输出进行编码。

但是,该技术在Python 3中不起作用,因为它sys.stdout.write()期望使用a
str,但是编码的结果是bytes,并且在codecs尝试将编码后的字节写入原始字节时发生错误sys.stdout

在Python 3中执行此操作的正确方法是什么?


问题答案:

从Python
3.7开始,您可以使用以下命令更改标准流的编码reconfigure()

sys.stdout.reconfigure(encoding='utf-8')

您还可以通过添加errors参数来修改如何处理编码错误。



 类似资料:
  • 问题内容: 在我的Web应用程序中,我使用jQuery的方法提交了一些表单字段。我在编码方面遇到了一些问题。我的应用程序的字符集是,但我认为这些字段是通过提交的。 如何设置通话中使用的编码? 问题答案: 我认为,如果您想更改编码,则可能必须使用,请参见下面的参数(and 回调假定您具有和html中的内容): 我实际上只需要一个小时左右就可以完成,真是巧合!

  • 问题内容: 我的Java Web应用程序有问题。 这是index.jsp中的代码: 当我有线请求时,我的浏览器发送以下标头: Tomcat服务器返回以下信息: 但是,如果我以我的形式发送“é”(UTF-8中的%C3%A9),则会显示“é”。 我了解的是浏览器发送了一个用UTF-8(%C3%A9)编码的“é”。 但是服务器将其解释为ISO-8859-1。因此,%C3解码为Ã,%A9解码为©,然后发

  • 问题内容: 我有一个输出非ASCII字符的python脚本。它可以从命令行正常运行(它具有LANG en_US.UTF-8),但是一旦我尝试在Jenkins中运行(从同一shell启动),它就会以ascii终端的典型方式失败: 我尝试在“执行外壳”构建步骤中执行脚本调用,如下所示: 但是,似乎忽略了这一点。将以下内容放入我的python脚本中: 不管我做什么,都给我这个: 那么,有什么能让我强迫詹

  • 问题内容: 我正在从Java中的Web servlet调用SAP SOAP服务。由于某种原因,每次我在请求的字段中使用特殊字符(例如“è”或“à”)时,SAP都会给我一个错误。SOAP Service的WSDL在UTF-8中定义,我已经相应地设置了字符编码,如下所示。但是我不确定这是正确的方法。另外,请注意,如果我使用SOAP UI(具有相同的信封),则请求可以正常工作,因此它一定是Java方面的

  • 我使用@FormUrlEncoded发送到服务器。当我向服务器发送字符串时,我得到如下请求体 所以我找到了加法器。拦截器 ApiInterface接口 但它不起作用。英语和数字都可以,但不是我的语言。如何修复它?我也试过设置-

  • 了解如何在 Dreamweaver 中设置编码首选参数、代码主题、格式和代码改写首选参数。 可以设置编码首选参数(例如代码格式和颜色等)以满足您的特定需求。 注意: 若要设置高级首选参数,请使用标签库编辑器(请参阅管理标签库)。 Dreamweaver 支持 CSS、JS 和 PHP 文件类型的格式设置。有关如何自定义 PHP、CSS、JS 代码格式设置的信息,请参阅设置代码格式。 设置代码外观