Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python在有效的CP437字符上失败

Python在有效的CP437字符上失败
EN

Stack Overflow用户
提问于 2016-11-12 12:28:36
回答 2查看 983关注 0票数 1

向下箭头()是CP437编码中的有效字符。我正在编写一个需要用这种编码读写文件的程序,但是当我试图将包含这个字符的字符串写入文件时,我会收到以下错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
File "C:\Python34\lib\encodings\cp437.py", line 19, in encode
   return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2193' in position 0: character maps to <undefined>

对于其他CP437字符,例如,也会发生同样的情况。我的代码在下面,万一我做了什么蠢事.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ENCODING = 'CP437'

def writeFile(name, text):
    f = open(name, 'w', encoding = ENCODING)
    f.write(text)
    f.close()

根据Wikipedia,它在指定的编码中是有效的,那么python为什么不告诉我呢?我怎么才能解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-12 14:57:18

链接到的Wiki页面上写着(就在将向下箭头显示为0x19的表的上方):

尽管ROM为所有256种不同的8位代码提供了一个图形,但是一些API不会打印一些代码点,特别是范围1-31和127的代码。相反,他们会将它们解释为控制字符。例如,在原始IBM上输出文本的许多方法都会解释BEL、BS、CR和LF的代码。许多打印机也无法打印这些字符。

您要编码的字符,即向下箭头,与ASCII控制字符EM (媒体结束)相同。它在旧程序中的意义将取决于上下文。在Python中,上述引号(1-31和127)中提到的字符总是被解释为控制字符,而不是可打印字符。

票数 1
EN

Stack Overflow用户

发布于 2016-11-12 13:48:38

对我来说是个谜,但这能满足你的需要吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
f = open('somethin.txt', 'wb')
s1 = ( chr(8595)+chr(8593)+chr(8592)+chr(8594) ) . encode ( 'utf-8' )
s2 = '↓↑←→' . encode ( 'utf-8' )
f.write( s1 )
f.write( s2 )
f.close()

s1s2是相同的字节字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40567325

复制
相关文章
显示器 设置选项 解析
明亮度 Gama:显示器的输出图像对输入信号的失真程度。 DCR:Dynamic Contrast Ratio,动态对比率。自动判断画面整体亮度,对画面各部分进行亮度调整,使细节更清晰,层次更分明。 颜色设置 色温 暖色 正常 冷色 sRGB:RGB(色彩空间)的一种标准。 DCB模式 OSD设置 其他 DDC/CI:Display Data Channel Command Interface,基于DDC/CI协议,用户可以通过鼠标和人性化的软件界面来完成显示器的各项设置和色彩调节,
JNingWei
2018/09/28
1.6K0
JavaScript实现显示时间,暂停时间,和取消显示时间
//显示时间函数 var id;//设置该id主要是为了之后的暂停和取消显示时间用到clearInterval(这里传id); function showTime(){ var divOne=document.getElementById("one"); var d=new Date(); var timStr=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+" "+ d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()+":"+d.getMilliseconds(); divOne.innerHTML=timStr; id=setInterval(function(){ d=new Date(); timStr=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+" "+ d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()+":"+d.getMilliseconds(); divOne.innerHTML=timStr; }, 1) }
小小鱼儿小小林
2020/06/23
2.3K0
GCC编译选项_需要使用安全编译选项的语言
gcc和cc是一样的,c++和g++是一样的。一般c程序就用gcc编译,c++程序就用g++编译
全栈程序员站长
2022/11/15
1.3K0
GCC编译选项_需要使用安全编译选项的语言
7个有用的Pandas显示选项
andas是一个在数据科学中常用的功能强大的Python库。它可以从各种来源加载和操作数据集。当使用Pandas时,默认选项就已经适合大多数人了。但是在某些情况下,我们可能希望更改所显示内容的格式。所以就需要使用Pandas的一些定制功能来帮助我们自定义内容的显示方式。
deephub
2023/02/01
1.3K0
速读原著-TCP/IP(时间戳选项)
时间戳选项使发送方在每个报文段中放置一个时间戳值。接收方在确认中返回这个数值,从而允许发送方为每一个收到的 A C K计算RT T(我们必须说“每一个收到的 A C K”而不是“每一个报文段”,是因为T C P通常用一个A C K来确认多个报文段)。我们提到过目前许多实现为每一个窗口只计算一个 RT T,对于包含8个报文段的窗口而言这是正确的。然而,较大的窗口大小则需要进行更好的RT T计算。
cwl_java
2020/03/13
1.2K0
Confluence 6 修改导航显示选项 原
https://www.cwiki.us/display/CONF6ZH/Configure+the+Sidebar
HoneyMoose
2019/01/30
1.4K0
Confluence 6 修改导航显示选项
                                                                            原
简单时间显示
建立此公众号,本意就是想着平时反正也是在拿着手机看微信,不如无聊时看看一些js实例,巩固并提高一下js代码编写。所以,志同道合的友友们,跟我一起,去改变世界(吹牛逼不花钱,随便吹)。
大M
2021/08/24
2.2K0
简单时间显示
时间,需要估算
【字数:2085;阅读时长:6min】 估算时间的共性就是——我们绝大多数人根本无法准确的预估时间。 因为预估时间对于我们来说充满着熟悉和陌生的冲突,而多数情况下,我们所做的每个任务都会有陌生的成分,如果我们不会分解任务或者没有一个必然的过程,那么我们是无法来估算时间的。 我们现在提出结论是:如果想提高估算时间的能力,必须养成一个习惯——那就是: 在做任何事情之前,先判断对其的熟悉或者陌生的程度,再判断估算完成任务所需要的时间 为了可以很好的完成估算任务的所需时间,我们将“估算时间”分解成四句话来理解 1
用户2025931
2018/06/19
5890
速读原著-TCP/IP(IP时间戳选项)
I P时间戳选项与记录路由选项类似。 I P时间戳选项的格式如图 7 - 7所示(请与图7 - 3进行比较)。
cwl_java
2020/03/06
9610
Vue笔记(7) 很长
那么此时我想在vue实例组件中使用子组件中的PLanguage的data,显然是不能直接获取到的
y191024
2022/09/20
6500
Vue笔记(7) 很长
JS显示当前时间
<div id="clock"></div> window.setInterval('showRealTime(clock)', 1000); function showRealTime(clock) { var d = new Date(); var year = d.getFullYear(); var month = d.getMonth() + 1; var date = d.getDate(); var days = new Array("日", "一",
小语雀网
2022/05/06
27.8K0
django显示当前时间
直接用HttpResponse返回一个html标签不太好,如果代码比较多,就不合适了。
py3study
2018/08/02
3.1K0
腾出时间来瞎搞
腾不出时间学习的人,迟早会腾出时间来伤悲; 腾不出时间思考的人,迟早会腾出时间来后悔; ——刘同
RobinsonZhang
2018/08/28
2480
腾出时间来瞎搞
程序员需要多个显示器来提高工作效率
程序员需要多个显示器来提高工作效率 我发现了一篇很有意思的关于研究多个显示器与生产力的博客文章。去年一些开发人员,包括我自己,开始使用多个显示器设置。基于我的经验,我完全同意这项研究调查的结果: 平
用户1289394
2018/02/27
1.6K0
程序员需要多个显示器来提高工作效率
Win11关闭时间显示——强行修改右下角时间显示
我们只能通过修改系统设置,实现隐藏或关闭windows11任务栏上显示的时间和日期。
红目香薰
2023/04/03
7.5K0
Win11关闭时间显示——强行修改右下角时间显示
android toast显示时间,Android Toast自定义显示时间「建议收藏」
Toast是Android中使用频率较高的弹窗提示手段,使用起来简单、方便。常规使用方法这里不做说明,继前一篇博客《Android中Toast全屏显示》 ,其中抛砖引玉的给出一个简单的实现Toast全屏显示的方法后,发现无法控制Toast的显示时长。虽然Toast中有setDuration(int duration)接口,但是跟踪代码发现,设置的时间没起作用,只有系统默认的两个时间LENGTH_DURATION = 3500毫秒,SHORT_DURATION = 2000毫秒。也就是说,无论我们设置多长时间,最终影响Toast弹窗时间的只有Toast.LENGTH_LONG和Toast.LENGTH_SHORT两个参数。
全栈程序员站长
2022/09/30
2.9K0
TP将时间戳显示成时间格式。
前端调用: {$vo.time|date="Y-m-d",###} “###”代表对它本身生效! 小写y只显示xx比如2016只显示16,大Y 显示的是2016这样! Tags: None Archives QR Code
简单、
2018/07/18
2.4K0
让Squid 显示本地时间
Squid的Errormessages默认的时间显示的GMT时间,而非本地时间,这个有时候看着很
Java架构师必看
2021/03/22
1.4K0
显示时间(TextClock和AnalogClock)
TextClocks是以数字时钟的形式显示. AnalogClock是模拟时钟.
李小白是一只喵
2020/04/24
2.6K0
点击加载更多

相似问题

UiViewController需要很长时间来显示

10

AngularJs - ngRepeat需要很长时间来显示数据。

24

Regex需要很长时间来评估

18

ApexChart需要很长的时间来呈现

12

MariaDB需要很长时间来执行

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文