Python的utf-8转换成unicode再写入文本

转换很好转,就直接是

text.decode(‘utf-8‘)

之前import chardet,

chardet.detect(text)

看一下原本是什么格式,原本的是utf-8-sig,就用这个decode。

问题是写入的时候出现了问题,一直会出现

UnicodeEncodeError: ‘ascii‘ codec can‘t encode character u‘\xa0‘ in position 20: ordinal not in range(128)

类似这样的错误,去问了Song才知道utf-16就是unicode???然后是带BOM的,而且还要以‘wb‘写入,于是我回去直接用utf-16encode就好了……

open(filename,‘wb‘).write(newText.encode(‘utf-16‘))

此外不知道为啥,在terminal里可以直接运行,写在py里就会报错???虽然结果还是改成了unicode???陷入沉思……

 1 import os
 2
 3 def convert(filename):
 4     raw = open(filename,‘r‘).read()
 5     try:
 6         newRaw = raw.decode(‘utf-8-sig‘)
 7         raw = open(filename,‘wb‘).write(newRaw.encode(‘utf-16‘))
 8         raw.close()
 9     except:
10         print(filename)
11
12
13 def main():
14     fileDir = "C:"+os.sep+"Users"+os.sep+"xxx"+os.sep+"Desktop"+os.sep+"xxx"
15     for root,dirs, files in os.walk(fileDir):
16         for file in files:
17             convert(os.path.join(root, file))
18     os.system("pause")
19
20 if __name__ == ‘__main__‘:
21     main()
时间: 2024-10-14 12:38:33

Python的utf-8转换成unicode再写入文本的相关文章

中文转换成Unicode编码 和 Unicode编码转换为中文

前几天,遇到一个问题,就是在浏览器地址栏传递中文时,出现乱码,考虑了一下,解决方式有很多,我还是采用了转换编码的方式,将中文转换为Unicode编码,然后再解码成中文,以下是实现的过程,非常简单! package cy.code; public class CyEncoder { private String zhStr; //中文字符串 private String unicode;//将中文字符串转换为Unicode编码 存储在这个属性上. public CyEncoder(String z

python如何将字符串转换成json的几种办法

python如何将字符串转换成json的几种办法 最近在工作中遇到了一个小问题,如果要将字符串型的数据转换成dict类型,我第一时间就想到了使用json函数.但是里面出现了一些问题 1.通过json来转换: In [1]: import json In [2]: mes = '{"InsId": 2, "name": "lege-happy", "CreationTime": "2019-04-23T03:18:02

python将下载地址转换成迅雷和qq旋风的下载地址

迅雷和qq旋风下载,有加速和离线功能,很方面,我是在网上看到的原始地址和迅雷地址,qq旋风地址的转化原理,然后用python+pyqt写了一个客户端 原理: 迅雷: 迅雷下载地址="thunder://"+Base64编码("AA"+"真实地址"+"ZZ") QQ旋风: qqdl="qqdl://"+Base64编码("真实地址") import re import base64 fro

将MultiBytes应用转换成Unicode应用

1,项目属性选择Unicode; 2,添加#include <tchar.h>: 3,所有的""转换成_T(""); 4,看具体代码: for( std::vector<SEARCH_RESP>::iterator iterator=service.m_tDeviceList.begin(); iterator!=service.m_tDeviceList.end(); iterator++ ) { //CString csLine; //c

Java 把long 转换成 日期 再转换成String类型

1 /** 2 * 把long 转换成 日期 再转换成String类型 3 */ 4 public String transferLongToDate(String dateFormat, Long millSec) { 5 SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); 6 Date date = new Date(millSec); 7 return sdf.format(date); 8 } 上面是方法   第一个参数:da

python入门:UTF-8转换成GBK编码

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #UTF-8转换成GBK编码 4 #temp(临时雇员,译音:泰坡) 5 #decode(编码,译音:迪口德) 6 #encode(编码,译音:因口德) 7 #原理就是爸UTF-8转换成万国码,再给万国码进行编码转换成GBK,在python 2.x里面这么用 8 """ 9 给变量temp赋值等于'李杰'是UTF-8编码! 10 变量temp_unicode的赋值等于temp

使用python将ppm格式转换成jpg【转】

转自:http://blog.csdn.net/hitbeauty/article/details/48465017 最近有个很火的文章,叫 有没有一段代码,让你觉得人类的智慧也可以璀璨无比? 自己试了一下里面的代码,可是图片格式让我犯难了.PPM格式的图片怎么打开呢?难不成还特意为它去装个专业的图形处理软件吗? 关键是笔记本不允许装盗版软件啊! 研究了一下,用Python可以很容易就把PPM转换成jpg格式啊,代码如下: #coding=utf-8 import Image img = Ima

python 将类对象转换成json

如果将字典转换成json,想必都很熟悉了,如果在进阶点,将class类转换成json对象该如何操作了? 1,先定义一个类 #定义一个Student类 class Student(object): def __init__(self,name,age,score): self.name = name self.age = age self.score = score 2,在实例化Student类,传入3个参数 #实例化这个对象 s = Student('hello',20,80) 3,利用json

Python 字符串类型列表转换成真正列表类型

我们在写代码的过程中,会经常使用到for循环,去循环列表,那么如果我们拿到一个类型为str的列表,对它进行for循环,结果看下面的代码和图: str_list = str(['a','b','c']) for row in str_list: print(row) 结果: 那么for循环就把str类型的列表的每一个字符都一个一个的循环的打印出来,而这个结果并不是我们想要的,那么如何解决这个问题?,使用到第三方模块,看下面的代码 from ast import literal_eval # 假设拿