鱼C论坛

 找回密码
 立即注册
查看: 2190|回复: 7

Mac系统下sublime text 打开pc端传过来的含中文字符txt文件就乱码!

[复制链接]
发表于 2018-4-1 20:01:02 | 显示全部楼层 |阅读模式

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

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

x
在零基础学python第29讲中,需要下载record.txt文件(txt文件内容见图片)。

问题是!!!!!

我用的是sublime text2编辑器,record.txt能在该编辑器中打开,出现的不是中文,也就是乱码了....(见图片)

乱码后,我完全没有办法对这个record.txt读取,导致我的代码运行结果为空(见图片),代码如下(我觉得我的代码应该是没有问题的)。

  1. import sys
  2. reload(sys)
  3. sys.setdefaultencoding("utf-8")

  4. def save_file(boy,girl,count):
  5.         file_name_boy='boy_'+str(count)+'.txt'
  6.         file_name_girl='girl_'+str(count)+'.txt'

  7.         boy_file=open(file_name_boy,'w')
  8.         boy_file.writelines(boy)
  9.         boy_file.close()

  10.         girl_file=open(file_name_girl,'w')
  11.         girl_file.writelines(girl)
  12.         girl_file.close()

  13. def split_file(file_name):
  14.         f=open(file_name)
  15.         boy=[]
  16.         girl=[]
  17.         count=1

  18.         for eachline in f:
  19.                 if eachline[:3]!='===':
  20.                         (role,content)=eachline.split(':',1)
  21.                         if role=='小甲鱼':
  22.                                 boy.append(content)
  23.                         if role=='小客服':
  24.                                 girl.append(content)
  25.                 else:
  26.                         save_file(boy,girl,count)

  27.                         boy=[]
  28.                         girl=[]
  29.                         count+=1

  30.         save_file(boy,girl,count)

  31.         f.close()

  32. split_file('/Users/zhangying/Desktop/221-code/Alearning/record.txt')
复制代码


是不是所有非自己生成的含有中文字符的txt文件在sublime text编辑器中打开都会乱码?如何解决呢?

题外话:平常我自己生成的含中文字符的txt文件无论是在sublime text 还是用系统自带的文本编辑器都能够正确的不乱码的打开。

屏幕快照 2018-04-01 下午7.38.44.png
屏幕快照 2018-04-01 下午7.55.07.png
屏幕快照 2018-04-01 下午7.57.43.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-1 20:05:51 | 显示全部楼层
文本另存为,选编码utf8,然后再传
或用notepad++转了再传
2018-04-01_200507.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-1 21:29:01 | 显示全部楼层
ba21 发表于 2018-4-1 20:05
文本另存为,选编码utf8,然后再传
或用notepad++转了再传

我是mac系统,没有notepad++,只有系统自带的文本编辑器、代码编辑器和sublime text编辑器。(我是采用的笨办法,自己新建一个txt文件,把文本内容复制进去)
请问,如何实现一键转码这样的功能呢?而且,您是转成了utf-8,我有个疑问,为什么是utf-8而不是GB呢?因为我如果想打开外来的txt文件的话,需要在文本编辑器中设置打开方式为GB18030。
屏幕快照 2018-04-01 下午9.28.01.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-1 22:45:43 | 显示全部楼层
teribsandy 发表于 2018-4-1 21:29
我是mac系统,没有notepad++,只有系统自带的文本编辑器、代码编辑器和sublime text编辑器。(我是采用的 ...

我是说先在windows改好,在复制过去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 09:48:07 | 显示全部楼层
不用这么麻烦,写为f = open('路径名',encoding = 'GBK')即可,也就是加一个encoding = 'GBK'即可正常打开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-2 10:01:12 | 显示全部楼层
黄金猫 发表于 2018-4-2 09:48
不用这么麻烦,写为f = open('路径名',encoding = 'GBK')即可,也就是加一个encoding = 'GBK'即可正常打开

报错了......TypeError: 'encoding' is an invalid keyword argument for this function

为什么呢?是和我的版本(python2.7,sublime text2)有关吗。。。。。。那应该怎么修改呢?我就想像您的回答那样,用个简单的能通过编程解决编码的方法~

屏幕快照 2018-04-02 上午9.57.49.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 10:36:45 | 显示全部楼层
teribsandy 发表于 2018-4-2 10:01
报错了......TypeError: 'encoding' is an invalid keyword argument for this function

为什么呢?是 ...

你先新建一个文件,写一行代码,f = open(path,encoding = 'GBK'),看行不行,逐个排除.我用的是3.6.3,但我预计不是版本问题.代码太多报错的那一行不一定的真正错的地方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-2 23:32:20 | 显示全部楼层
黄金猫 发表于 2018-4-2 10:36
你先新建一个文件,写一行代码,f = open(path,encoding = 'GBK'),看行不行,逐个排除.我用的是3.6.3,但我预 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 10:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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