使用configparser读取带有中文的配置文件出现UnicodeDecodeError错误

问题:

使用configparser读取配置文件时,出现UnicodeDecodeError错误,在没有任何中文的时候读取可以的,加了1句中文注释后就抛出异常,异常如下:

UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xae in position 199: illegal multib

解决方法

注意

对于有BOM(如Windows下用记事本指定为utf-8)的文件,需要使用 utf-8-sig,即把encoding=utf-8 改为 encoding= utf-8-sig

原文地址:https://www.cnblogs.com/xiaohuhu/p/9064697.html

时间: 2024-07-29 11:30:12

使用configparser读取带有中文的配置文件出现UnicodeDecodeError错误的相关文章

configparser读取含有中文的配置(Windows)

运行环境:Windows7.1 在 Python 3 中虽有encoding 参数,但是对于有BOM(如Windows下用记事本指定为utf-8)的文件,需要使用 utf-8-sig, 使用utf-8就没戏. 配置文件 (utf-8格式,带BOM) [test] a = 中文 Python3下面的代码: # -*- coding:utf-8 -*- import configparser config = configparser.ConfigParser() config.read('test

rapidxml读取包含中文路径的xml解析错误的解决方法

from http://blog.csdn.net/qinwei4072880/article/details/38865179 1.rapidxml不支持中文路径. 2.rapidxml不支持Unicode xml必须为utf-8编码. 解决方法: #ifdef _UNICODE setlocale(LC_ALL, "Chinese-simplified"); // 设置中文环境USES_CONVERSION;file<> doc(W2A(lpszXml)); setlo

c#读取带有命名空间的XML

XML文件内容 <?xml version="1.0" standalone="no"?> <svg width="1709px" height="886px" onload="init(evt)" viewBox="0 0 1800 900" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="

spring-boot读取props和yml配置文件

最近微框架spring-boot很火,笔者也跟风学习了一下,废话不多说,现给出一个读取配置文件的例子. 首先,需要在pom文件中依赖以下jar包 Java代码 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>

python读取数据库中文乱码问题

今天朋友遇到过怪问题,在同一个页面显示的2条中文记录一个正常,一个乱码,2条记录分别从不同的表里取出.录入的时候采用直接录入.仔细观察2者区别,发现能正常显示的字段在表中类型为nvarchar,不能的是varchar,试着将其改成nvarchar,问题解决. 因为对sqlserver不熟悉.通过查询手册得知: nvarchar表示以Unicode格式存储可变长度的 数据,所以能显示中文,而varchar是用非unicode存储数据,所以乱码.将Varchar类型设置为nvarchar类型,发现问

FileReader读取文件中文乱码问题

有一个UTF-8编码的文本文件,用FileReader读取到一个字符串,然后转换字符集:str=newString(str.getBytes(),"UTF-8");结果大部分中文显示正常,但最后仍有部分汉字显示为问号! Java代码 public static List<String> getLines(String fileName){ List<String> lines=newArrayList<String>(); try { Buffere

C. PHP读取TXT中文乱码的解决方法

PHP读取TXT中文乱码的解决方法 2013-03-01 19:12 2203人阅读 评论(0) 收藏 举报 //$fname文件名称 if ($fname = $_FILES['nickname']['tmp_name']) { //file_get_contents() 函数把整个文件读入一个字符串中. $contents = file_get_contents($fname); //获取文件的编码方式 $encoding = mb_detect_encoding($contents, ar

Spring读取外部的资源配置文件—@PropertySource和@Value实现资源文件配置

通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值: @PropertySource注解主要是让Spring的Environment接口读取属性配置文件用的,标识在@Configuration配置类上:@Value注解可以用在字段和方法上,通常用于从属性配置文件中读取属性值,也可以设置默认值. 具体用法: @PropertySource(value = { "classpath:config.properties" }, ignoreResourceN

关于python操作带有中文文件名报错的解决办法

python代码的编码格式       #coding:utf-8 在操作文件时,如果文件名带有中文,则需要将文件路径以Unicode的编码格式进行操作 具体的方式如下 path = "你的路径" ipath = unicode(path, "utf8")# 也可以使用以下方法Path = open(u'行业拆借.pdf', 'rb') f = open(ipath,"w") 原文地址:https://www.cnblogs.com/yoyowi