python 使用logging,生成的log文件是什么编码格式?脚本的编码格式决定?系统的编码格式决定?

编辑器的格式设置为utf-8,脚本开头标示了#-*-coding:utf-8-*-,那log文件就是utf-8格式的么?或者是电脑的系统ANSI格式的?如果脚本中在写入l... 编辑器的格式设置为utf-8,脚本开头标示了# -*- coding:utf-8 -*-,那log文件就是utf-8格式的么?或者是电脑的系统ANSI格式的?如果脚本中在写入log的过程中有解码编码操作,这个会不会影响到log文件的编码格式?
另外“编辑器的格式设置为utf-8,脚本开头标示# -*- coding:utf-8 -*- ",这个真正生效的是不是只有编辑器的格式设置为utf-8,而# -*- coding:utf-8 -*- "可以理解为只是一个提示?
展开
 我来答
bdwisyou7d
2013-05-27 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3774
采纳率:81%
帮助的人:1072万
展开全部
log的文件当然是byte格式。或者是无格式的。汉字编码取决于你自己设定的类型。

#coding:utf-8这个东西,只在python2下有效果。还需要编程器配合。你使用python自带的idle当然是没有问题的。

log中的汉字是一定要编码的。不编码你存贮不了。

编辑器本身的缺省编码格式要与你的源代码编码一致,不然看到的就是乱码。如果是idle,它会根据python脚本自动识别。

不过有些编辑器是有些不智能的。它不能理解python脚本第一行的提示。所以有时候,觉着很别扭自己要手工保持编辑器的编码与源码一致。还需要维护那个coding:utf-8
不过python3已将这一句去掉了。源代码全部要求使用utf-8编码(也许是utf-16),我很少用python3
追问

log的文件当然是byte格式。或者是无格式的。汉字编码取决于你自己设定的类型。

---> 这个不明白

  1. log文件的格式跟系统没有关系?

  2. 用的是notepad++,设置的格式是utf-8,是不是log的格式就是utf-8?

  3. 然后脚本里有编码,比如向上encode('gbk'),此时就是ANSI格式

  4. coding:utf-8和脚本编码格式一致,配套使用,可以这么理解么?

追答
log文件的格式的确与操作系统无关。就目前所有操作系统都是这样子的。所以python写文件时,字符串一定是编码的。

notepad++编辑时用utf-8。这只与你的源代码编辑有关。与log格式无关。
ANSI在windows平台上,大多数据情况下指的就是gbk或者是gb18030。
coding:utf-8是# -*- coding:utf-8 -*- 的缩写。我通常是这样写的。
这一句话只对特定的编辑器起作用。我想也许对notepad和eclipse没有影响。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式