鱼C论坛

 找回密码
 立即注册
查看: 2045|回复: 9

Mac 文件读取的内容显示为机器码

[复制链接]
发表于 2020-8-27 08:50:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> import os,sys
>>> fd = os.open( "/Users/xiaoshengemu/Desktop/dream.pages", os.O_RDWR)
>>> f=os.read(fd,12)###如果没有变量也无法直接读取###
>>> print(f)
b'PK\x03\x04\x14\x00\x00\x00\x08\x00\x84T'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-27 09:20:06 | 显示全部楼层
你试一下
print(f.decode())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-27 21:32:43 | 显示全部楼层

>>> print(f.decode())
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    print(f.decode())
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x84 in position 10: invalid start byte

报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-27 21:34:39 | 显示全部楼层
xiaoshengemu 发表于 2020-8-27 21:32
>>> print(f.decode())
Traceback (most recent call last):
  File "", line 1, in

utf -8. 不是默认的储存格式吗。  我也是新建打开的为什么会报错。 环境变量的问题吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-27 21:40:04 | 显示全部楼层
xiaoshengemu 发表于 2020-8-27 21:32
>>> print(f.decode())
Traceback (most recent call last):
  File "", line 1, in

你看看原文件编码格式是什么
在decode中添加编码格式参数就行了
例如:
print(f.decode(encoding=''GBK"))#若编码格式是GBK的话
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-4 19:16:57 | 显示全部楼层
sunrise085 发表于 2020-8-27 21:40
你看看原文件编码格式是什么
在decode中添加编码格式参数就行了
例如:

print(red.decode(encoding="utf-8", errors="strict"))
{\rtf1\ansi\
返回了,没报错 但是还是乱码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-5 11:27:10 | 显示全部楼层
你看看这个pages能不能打开看看里面的编码方式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-5 12:26:48 | 显示全部楼层
我觉得编码 可能会GB
2312?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 21:32:46 From FishC Mobile | 显示全部楼层
bonst 发表于 2020-9-5 11:27
你看看这个pages能不能打开看看里面的编码方式

pages  不知道  但是RTF(Windows的TXT)是UTF-8的  之后我直接用终端打开乱码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 23:26:27 | 显示全部楼层
本帖最后由 xiaoshengemu 于 2020-9-8 21:33 编辑

问题解决了。
首先是rtf 的格式问题。在mac 下他的rtf 格式不等于txt 格式。改为txt 格式就可以了
具体方法 打开rtf 文件。格式>制作纯文本  就可以了。这样就能在终端打开。
在python.
就是把最后的
print(ret.decode('utf','ignore'))
decode 第二个参数默认为 'strict',意为编码错误引起一个UnicodeError。ignore
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 20:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表