`

Windows下打印utf-8文件

阅读更多

估计入门时都会遇到的。我是在windows下用的Python25自带的IDLE编辑运行的,发现运行脚本得出的结果有一些中文显示是乱码,但有一些是 正常的。百思不得其解。首先查看了一下源文件的编码格式,是UTF-8。经过搜索再搜索,调试再调试,也换了几个编译器,发现比IDLE还糟糕(可能需要 进行encode设置)。问题终于解决了,一共花了俺将近5个小时,写在这里,希望遇到问题的人能搜索到这里,不再重犯。

乱码原因:
因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件。但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台

直接打印utf-8的字符串当然是乱码了。

解决方法:
在控制台打印的地方用一个转码就ok了,打印的时候这么写:
print myname.decode('UTF-8').encode('GBK')

比较通用的方法应该是:
import sys
type = sys.getfilesystemencoding()
print myname.decode('UTF-8').encode(type)

 

http://note.sdo.com/u/1445822006/n/mbnUS~jrqk7MLX00E000Xb

 
 
 
 
分享到:
评论

相关推荐

    The `8conv` text encoding converter:将带引号的可打印UTF-8,UTF-16BE,UTF16LE转换为8位。-开源

    处理UTF-8,UTF-16BE,UTF-16LE; (可选)将DOS或Windows代码页或HP-Roman8中的常用字符转换为ISO-8859-1。 UCS字符可以映射到8位转换字符串。 单个ISO C源文件“ 8conv.c”。 可以通过配置文件控制翻译,示例文件...

    nowide-standalone:该库提供了标准C和C ++库函数的实现,因此它们的输入为UTF-8,在Windows上就可识别,而无需Wide API

    该库提供了标准C和C ++库函数的实现,因此它们的输入为UTF-8,在Windows上无需使用Wide API即可识别。 基本原理 问题 考虑一个简单的应用程序,该应用程序将一个大文件拆分为多个块,以便可以通过电子邮件发送它们...

    LRC歌词文件转换器 V3.1

    LRC文件合并,可将LRC排序后,合并为TXT文件,方便打印输出 20. SRT字幕制作,可方便制作SRT文件,并可利用本软件轻松转换为其他格式 21. 批量转换功能 【使用提示】 如果您不能正常使用本软件,请将Comdlg32....

    射频识别通信协议实验 一、实验环境: Windows10系统、pycharm软件

    #coding=utf-8 import requests resp=requests.get('https://www.baidu.com') #请求百度首页 print(resp) #打印请求结果的状态码 print(resp.content) #打印请求到的网页源码 (5)解析网页源码用到BeautifulSoup库...

    AkelPad-4.8.5-setup

    ◆支持 Unicode 代码页 (UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE); ◆支持系统上已经安装的任何代码页; ◆支持 DOS/Windows、Unix 和 Mac 换行符格式; ◆文件打开前预览; ◆纠正错误代码页显示; ◆文本...

    LRC歌词文件转换器 2.87

    LRC歌词文件转换器 2.87... LRC文件合并,可将LRC排序后,合并为TXT文件,方便打印输出 20. SRT字幕制作,可方便制作SRT文件,并可利用本软件轻松转换为其他格式 21. LRC转手机歌词,用于将歌词应用于支持TXT的手机上

    Tinyxml 源代码(VC6 & VS2005)

    如果文件或者数据流以非标准但普遍的"UTF-8引导字节" (0xef 0xbb 0xbf)开始,TinyXML会以UTF-8的方式来读取它。 如果包含有encoding="UTF-8"的声明被读取,那么TinyXML会以UTF-8的方式来读取它。 如果读取到没有指定...

    易语言程序免安装版下载

    取错误文本()”返回的文本是UTF-8编码(应是GB18030编码)。 -------------------------------------------------------------------------------- 易语言5.0 相对于易语言4.x更新说明(2010/02/01):  增加...

    notepad v6.3.2官方简体中文版.rar

    可以新建windows/mac/unix格式的文档,编码支持ANSI/UTF-8,可以自定义设置文件关联,支持简单/冗余备份与自动完成。是一款优秀且开源的文字编辑器,它比系统自带的记事本具有更强大的功能,除了可以用于一般的文字...

    新版Android开发教程.rar

    8 Android Android Android Android 开发入门 System System System System Requirements Requirements Requirements Requirements The sections below describe the system and software requirements for ...

    rar压缩软件.rar

    Windows 的版本 RAR 从 rar.ini 文件读取配置文件信息,它放在 rar.exe 文件相 同的目录中。 这个文件包含下列字符串: switches=任何 RAR 开关,用空格分开 例如: switches=-m5 -s 环境变量 ~~~~~~~~ ...

    Python遍历zip文件输出名称时出现乱码问题的解决方法

    本文实例讲述了Python遍历zip文件输出名称时出现乱码问题的解决方法。分享给大家供大家参考。具体如下: windows中使用python2.7遍历zip文件之后输出文件名等...代码如下:(.py文件中在文件头先加 # -*- coding: UTF-8

    国产优秀文本编辑器everedit

    多内码支持,完美支持Unicode U16、U16-BE、UTF-8、东亚语言字符、西欧语言字符 支持多点编辑的文本片段功能 准确的编码探测,万码无忧 低内存占用,极低的内存就可以编辑巨大文件 PCRE兼容正则表达式(DEELX),支持...

    cpdf-binaries:适用于 Linux、Mac、Windows 的 PDF 命令行工具二进制文件

    支持Unicode UTF8文本输入输出 制作基于 PDF 的演示文稿 将多个页面放在一个页面上 添加、删除和操作注释 读取和设置文档信息和元数据 添加和删​​除文件附件到文档或页面。 加粗细线,变黑文本,制作草稿文件 ...

    实用工具

    列出免费许可的有用软件 | 替代软件SQL连接工具: | SQLTools-Oracle | DBeaver-MySQL,PostgreSQL,SQLite,Oracle,DB2,SQL Server,...gcc -mwin32 -dM -E -xc /dev/null | grep "WIN" 将Windows的UTF-8转换为另一

    MYQQ2009 - 用控制台上QQ

    Version 3.11 (2009-2-8) 1. 输入验证码提示。 2. 修正myqq.c删除好友的bug。 3. 修正添加附言的bug。 Version 3.10 (2009-2-7) 1. 修正09接收消息协议。 2. 全部源代码文件更改为UNIX-UTF8格式。 3. 增加...

    C#开发经验技巧宝典

    0665 创建一个文件用于写入UTF-8编码的文本 411 0666 OpenRead方法打开现有文件并读取 412 0667 打开现有UTF-8编码文本文件并进行读取 412 0668 OpenWrite方法打开现有文件并进行写入 413 0669 如何读取...

    MyQQ(DosQQ) 超小的精简QQ DEV-C++ 源码

    Version 3.11 (2009-2-8) 1. 输入验证码提示。 2. 修正myqq.c删除好友的bug。 3. 修正添加附言的bug。 Version 3.10 (2009-2-7) 1. 修正09接收消息协议。 2. 全部源代码文件更改为UNIX-UTF8格式。 3. 增加...

    印刷网站管理系统.zip

    支持UTF-8方式,可用于创建网站建设各种语言的网站 [>]静态HTML生成 可设置生成静态HTML网页,自定HTML缓存更新时间,提升网站访问速度 [>]可视化模版引擎 采用可视化模版引擎,模版修改直观灵活,模版插件可通过...

    Python注释:工作中使用的与Python相关的技术:搜寻器,数据分析,定时任务,RPC,页面解析,装饰器,内置函数,Python对象,多线程,多进程,异步,redis,redis,mongodb,mysql,开栈等

    '.decode('utf-8') url = 'http://{0}:{1}/{2}' . format ( '0.0.0.0' , 2375 , 'xxx' ) url = 'http://{ip}:{port}/{uri}' . format ( ip = '0.0.0.0' , port = 2375 , uri = 'xxx' ) url = 'http://%s:%d/%s' % ...

Global site tag (gtag.js) - Google Analytics