python logging模块写入中文,文件乱码的解决方法

一下文件执行将产生乱码,切.log文件显示问好,打不开

import logging
def shop_logging(name):
    name = name+"登录成功!"
    logger = logging.getLogger()
    fh = logging.FileHandler("test.log")
    formatter = logging.Formatter("%(asctime)s - %(name)s-%(levelname)s %(message)s")
    fh.setFormatter(formatter)
    logger.addHandler(fh)
    logger.setLevel(logging.DEBUG)
    logger.info(name)
shop_logging("auxc")

经发现,是没有定义文件格式,修复后

import logging
def shop_logging(name):
    name = name+"登录成功!"
    logger = logging.getLogger()
    fh = logging.FileHandler("test.log",encoding="utf-8",mode="a")
    formatter = logging.Formatter("%(asctime)s - %(name)s-%(levelname)s %(message)s")
    fh.setFormatter(formatter)
    logger.addHandler(fh)
    logger.setLevel(logging.DEBUG)
    logger.info(name)
shop_logging("auxc")

加上 encoding="utf-8",mode="a" 完美解决中文乱码的问题

原文地址:https://www.cnblogs.com/bdua/p/12253145.html

时间: 2024-10-12 07:36:40

python logging模块写入中文,文件乱码的解决方法的相关文章

ubuntu 中用vim打开txt等文件中文显示乱码的解决方法  

今晚用ubuntu 12.04 的vim编辑网页代码时,发现上面的中文显示乱码.这个html文件是我之前用gedit编辑的,在gedit里面显示正常,可是在vim下显示就是乱码了. 怎么解决ubuntu中vim显示中文乱码的问题呢? 首先,添加中文字符编码: sudo gedit /var/lib/locales/supported.d/local 在打开的文件中添加下面的中文字符集 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.GB18030 GB18030

ASP.NET中文显示乱码之解决方法

在config.web中设置globalization段 <configuration> <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/></configuration> 可以是utf-8.gb2312等等. ASP.NET中文显示乱码之解决方法

php上传文件中文文件名乱码的解决方法

想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,其实我们可以用iconv函数对文件名进行重新编码就解决问题了 可能会有不少朋友碰到一些问题就是上传文件时如果是英文倒好原文名不会有问题,如果是中文可能就会出现乱码了,今天我来给大家总结一下导致乱码php上传文件中文文件名乱码的原因与解决办法吧. 这几天在windows下安装了XAMPP,准备初步学习一下php的相关内容.这几天接触到了php上传文件,但是出现了一个郁闷问

php 文件中文文件名乱码的解决方法

想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,其实我们可以用iconv函数对文件名进行重新编码就解决问题了 php文件使用的是UTF-8编码,如果没有猜错APACHE处理用的应该是GBK.想明白了这个问题,就去查找相关的教程了,索性找到了iconv这个函数. 函数原型:string iconv ( string in_charset, string out_charset, string str )使用例子:$co

linux命令行下中文文件名乱码的解决方法

首先查询支持的编码: locale -a 如果没有你需要的编码,例如zh_CN.utf8 root运行: #dpkg-reconfigure locales 选择你需要的编码,用空格选中,可多选.tab选择"OK",回车. 默认编码选择zh_CN.utf8 安装你所需要的编码. 方法一: 修改/etc/sysconfig/i18n 文件 把里面的LANG="en_US"改成 GB2312就可以了 要重启一下机器 不用重启的方法,直接 # LANG="GB2

命令行编译java源文件提示 “编码GBK的不可映射字符” 及输出的中文变为乱码的解决方法

使用命令行编译运行java代码,编译时出现 “编码GBK的不可映射字符” 的错误提示,并且需输出的中文全部变为乱码,此时有两种解决方法: (方法一) 在输入 javac 命令时,额外输入 -encoding utf-8, 例如:如果编译的源文件名为 Test.java ,那么编译时原先只需输入 javac Test.java,而现在需要输入 javac -encoding utf-8 Test.java (方法二) 使用 EditPlus 软件编写代码时,通过修改相关设置然后保存文件即可,具体操

SQLyog客户端 导入sql文件乱码的解决方法

方法一: 通过增加参数 –default-character-set = utf8 解决乱码问题 mysql -u root -p password < path_to_import_file –default-character-set = utf8 方法二: 在命令行导入乱码解决  1. use database_name; 2. set names utf8; (或其他需要的编码) 3. source example.sql (sql文件存放路径) 方法三: 直接粘贴sql文件里的代码 1

PLSQL Developer中文显示乱码的解决方法

PLSQL Developer中文显示乱码是因为Oracle数据库所用的编码和PLSQL Developer所用的编码不同所导致的. 解决方法: 1. 先查询Oracle所用的编码 select userenv('language') from dual; 2. 设置PLSQL 的所用编码为第1步查询得到的编码格式 新建一个环境变量:  NLS_LANG 例如: 3. 重启 PLSQL 问题得到解决

PLSQLDeveloper中文显示乱码的解决方法

PLSQL客户端打开汉字显示乱码问题 PLSQL Developer中文显示乱码是因为Oracle数据库所用的编码和PLSQL Developer所用的编码不同所导致的. 解决方法: 1. 先查询Oracle所用的编码 select userenv('language') from dual; 2. 设置PLSQL 的所用编码为第1步查询得到的编码格式 新建一个环境变量: NLS_LANG  例如: 3. 重启 PLSQL 问题得到解决