gb2312

Python:将utf-8格式的文件转换成gbk格式的文件

拥有回忆 提交于 2020-01-11 09:14:34
需求:将utf-8格式的文件转换成gbk格式的文件 实现代码如下: def ReadFile(filePath,encoding="utf-8"): with codecs.open(filePath,"r",encoding) as f: return f.read() def WriteFile(filePath,u,encoding="gbk"): with codecs.open(filePath,"w",encoding) as f: f.write(u) def UTF8_2_GBK(src,dst): content = ReadFile(src,encoding="utf-8") WriteFile(dst,content,encoding="gbk") 代码讲解: 函数ReadFile的第二个参数指定以utf-8格式的编码方式读取文件,返回的结果content为Unicode 然后,在将Unicode以gbk格式写入文件中。 这样就能实现需求。 但是,如果要转换格式的文件中包含有一些字符并不包含在gbk字符集中的话,就会报错,类似如下: UnicodeEncodeError: 'gbk' codec can't encode character u'\xa0' in position 4813: illegal multibyte sequence

中文字体的英文名称

有些话、适合烂在心里 提交于 2020-01-07 19:18:17
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 宋体 SimSun 黑体 SimHei 微软雅黑 Microsoft YaHei 微软正黑体 Microsoft JhengHei 新宋体 NSimSun 新细明体 PMingLiU 细明体 MingLiU 标楷体 DFKai-SB 仿宋 FangSong 楷体 KaiTi 仿宋_GB2312 FangSong_GB2312 楷体_GB2312 KaiTi_GB2312 宋体:SimSuncss中中文字体(font-family)的英文名称 MacOS的一些: 华文细黑:STHeiti Light[STXihei] 华文黑体:STHeiti 华文楷体:STKaiti 华文宋体:STSong 华文仿宋:STFangsong 儷黑Pro:LiHei Pro Medium 儷宋Pro:LiSong Pro Light 標楷體:BiauKai 蘋果儷中黑:Apple LiGothicMedium 蘋果儷細宋:Apple LiSung Light Windows的一些: 新細明體:PMingLiU 細明體:MingLiU 標楷體:DFKai-SB 黑体:SimHei 新宋体:NSimSun 仿宋:FangSong 楷体:KaiTi 仿宋_GB2312:FangSong_GB2312 楷体_GB2312:KaiTi

字符集与编码(九)——GB2312,GBK,GB18030

試著忘記壹切 提交于 2020-01-07 18:44:44
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前面的一些篇章更多谈论了Unicode的相关话题,虽然也有提到GBK等编码,但都没细说,这里打算系统说一下。GB系列包括GB2312,GBK,GB18030. 前面已经提过,GB=Guo Biao=国标=国家标准,至于所谓的2312就是一编号了,没有其它特别的意义,18030类似。GBK没有编号,所以它实际上并不是国家标准,只是一个事实标准,GBK中K指“扩展”的意思。 最早的是GB2312,我们从它开始说起。 GB2312 以下为一简介(官方文档见" 国家标准化管理委员会 "网站: http://gbread.sac.gov.cn/bzzyReadWebApp/standardresources.action?m=readFile&bzNum=GB%202312-1980&flag=1 ,用IE打开,它要安装一个ActiveX插件): GB 2312-1980,全称《信息交换用汉字编码字符集 基本集》,由国家标准总局于1980年3月9号发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。它是一个简化字的编码规范,也包括其他的符号、字母、日文假名等,共7445个图形字符,其中汉字占6763个。 上述官网地址无法下载,如果你想下载,可试下这个 ftp://ftp.oreilly.com

输入法项目->用delphi生成GBK 中文编码 表(4~5) GBK/4~5: 0xAA40~0xFEA0(部分) 扩充汉字 包括繁体 0xA840~0xA995(部分) 扩充非汉字

心已入冬 提交于 2020-01-07 17:50:50
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 摘要: GBK 中文编码: (* GBK是GB2312的扩展,是向上兼容的,因此GB2312中的汉字的编码与GBK中汉字的相同。 GBK中每个汉字仍然包含两个字节, 第一个字节的范围是0x81-0xFE(即129-254),第二个字节的范围是0x40-0xFE(即64-254)。GBK中有码位23940个, 包含汉字21003个。------------------------------------ 阅读全文 作者资料: jfyes 我的主页 个人资料 我的闪存 与我联系 ---------------------------------------------------------------------------------------- 推荐链接: 博客园个人主页上线测试 新闻频道: Google回应微软:Chrome Frame让IE更安全 网站导航: 博客园首页 个人主页 新闻 社区 博问 闪存 找找看 来源: oschina 链接: https://my.oschina.net/u/34216/blog/1473

Python中文问题SyntaxError

心不动则不痛 提交于 2020-01-01 08:43:06
python的中文问题一直是困扰新手的头疼问题,这篇文章将给你详细地讲解一下这方面的知识。当然,几乎可以确定的是,在将来的版本中,python会彻底解决此问题,不用我们这么麻烦了。 先来看看python的版本: >>> import sys >>> sys.version '2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)]' (一) 用记事本创建一个文件ChineseTest.py,默认ANSI: s = "中文" print s 测试一下瞧瞧: E:\Project\Python\Test>python ChineseTest.py File "ChineseTest.py", line 1 SyntaxError: Non-ASCII character '\xd6' in file ChineseTest.py on line 1, but no encoding declared ; see http://www.python.org/peps/pep-0263.html for details 偷偷地把文件编码改成UTF-8: E:\Project\Python\Test>python ChineseTest.py File "ChineseTest.py", line 1

Python 编码转换与中文处理

做~自己de王妃 提交于 2020-01-01 08:42:47
python 中的 unicode是让人很困惑、比较难以理解的问题. 这篇文章 写的比较好,utf-8是 unicode的一种实现方式,unicode、gbk、gb2312是编码字符集. py文件中的编码 Python 默认脚本文件都是 ANSCII 编码的,当文件 中有非 ANSCII 编码范围内的字符的时候就要使用" 编码指示 "来修正一个 module 的定义中,如果.py文件中包含中文字符(严格的说是含有非anscii字符),则需要在第一行或第二行指定编码声明: # -*- coding=utf-8 -*- 或者 #coding=utf-8 其他的编码如:gbk、gb2312也可以;否则会出现: SyntaxError: Non-ASCII character '\xe4' in file test.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details python中的编码与解码 先说一下python中的字符串类型,在python中有两种字符串类型,分别是 str 和 unicode ,他们都是basestring的派生类; str类型是一个包含Characters represent (at least) 8-bit bytes的序列

Python语言编码问题详细解读。Unicode,assci,utf-8,gbk等编码

眉间皱痕 提交于 2020-01-01 08:42:12
一、系统默认的脚本文件编码 Python 默认脚本文件都是 ANSCII 编码的,当文件 中有非 ANSCII 编码范围内的字符的时候就要使用"编码指示"来修正。 一个module的定义中,如果.py文件中包含中文字符(严格的说是含有非anscii字符),则需要在第一行或第二行指定编码声明: # -*- coding=utf-8 -*-或者 #coding=utf-8 其他的编码如:gbk、gb2312也可以; 否则会出现类似:SyntaxError: Non-ASCII character '/xe4' in file ChineseTest.py on line 1, but no encoding declared; see http://www.pytho for details这样的异常信息;n.org/peps/pep-0263.html 命令查看脚本默认的编码方式 >>> import sys >>> sys.getdefaultencoding() 'ascii' >>> 2.2 python中的编码与解码   先说一下python中的字符串类型,在python中有两种字符串类型,分别是str和unicode,他们都是basestring的派生类;str类型是一个包含Characters represent (at least) 8-bit bytes的序列

Python中文问题研究

£可爱£侵袭症+ 提交于 2020-01-01 08:41:54
我曾经在 深入浅出java中文问题 系 列中研究过java的中文问题,现在中文问题已经不再羁绊我在java世界中漫游的脚步了。最近,对Python产生了浓厚的兴趣,谁知道跟中文问题这个 老朋友又一次不期而遇。看来,在代码世界中,中文问题会在很长一段时间里跟我们形影不离。这也难怪,谁让当初发明计算机的不是我们中国人呢,否则,现在全 世界的计算机都支持而且必须支持GBK,这样,写这样文章的人就不会是我了,而是大洋彼岸的一个金发碧眼的程序员,而且标题也相应改为 “studying the english problem in '大蟒' ”。。哈哈 YY而已,还是面对现实问题吧。相对java而言,中文问题在Python中的表现更为激烈。“激烈”的意思不是说更为严重或者说难于解决,只是 Python对于decode&encode错误的默认处理方式为strict,也就是直接报错,而java使用replace的方式来处理了,因此 java出现中文问题后会打印出很多"??"。此外,Python的默认的encoding是ASCII,而java的默认encoding跟操作系统的 encoding是一致的。在这一点上,我觉得java更为合理,这样对程序员更为友好,也减少了newbies 开始时的挫折感,是有利于语言的推广的。但是,Python也有它的道理

【转】python中文decode和encode转码

旧街凉风 提交于 2019-12-30 21:27:42
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。 decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。 encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。 因此,转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成其他编码 (与代码本身的编码是一致的!) 测试: 我的eclipse里面代码为utf-8编码的。然后我这样写代码 s="你好" s=s.decode('gb2312').encode('utf-8') print s 报错: UnicodeDecodeError: 'gb2312' codec can't decode bytes in position 2-3: illegal multibyte sequence 原因

gb2312相比与utf-8的优点

一笑奈何 提交于 2019-12-30 21:17:42
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 入行不久后,我知道了相同的文件可以有不同的编码方式,比如"gb2312",又或者"utf-8"。然后又被告知gb2312比较适合中文文件,utf-8则是各种语言文件都适合。一般情况下直接用utf-8格式编码就不会出现乱码之类的问题。关于其中原理与机制也没多想,就当是"常识"记住了。但是在记住这个"常识"后不久,入职一家公司后,前端做页面却被告知了一个很让我费解的编码规范:"网页必须要用gb2312编码"。why? 因为这家公司经营的是垂直门户网站,提供各种相关资讯服务赚广告费。它的主要服务对象是中文用户,同样是编码一个汉字,gb2312需要两个字节,但是utf-8却需要三个字节。网站门户有大量中文网页和文案,使用gb2312比utf-8要为公司服务器节约三分之一的流量成本。 可能有的人说了,前后端对接,后端一定要用utf-8怎么办( 他们不用就会出问题 )?这个问题可以作为另一个问题的答案,就是“前后端分离的开发方式有什么优点?” (完) 来源: oschina 链接: https://my.oschina.net/710409599/blog/3151112