gbk

python小记——python的编码问题详解

痞子三分冷 提交于 2020-01-02 13:05:59
python文件IO操作时,对编码知识一概不知,那可真的是蛋疼了哈。utf-8啊、gbk、还有encode()、decode()等函数以及encoding参数,搞不好就乱码甚至是报错,那可是头都大了。不说了不说了先上代码先上代码。( 下面代码是在Windows系统上进行演示的) import sys import locale str = '小甲' print ( str ) print ( type ( str ) ) print ( sys . getdefaultencoding ( ) ) print ( locale . getdefaultlocale ( ) ) with open ( 'utf' , 'w' , encoding = 'utf-8' ) as file : file . write ( str ) with open ( 'gbk' , 'w' , encoding = 'gbk' ) as file : file . write ( str ) 输出结果: 小甲 < class 'str' > utf - 8 ( 'zh_CN' , 'cp936' ) 解释: getdefaultencoding():返回的是系统编码格式,这里的系统指的不是操作系统,而是python编译器的默认编码,python3的编码是UTF-8。

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的序列

(JavaScript) JS方式调用POS机蓝牙打印

断了今生、忘了曾经 提交于 2019-12-31 19:14:58
function print(mac_address) { if (!mac_address) { mui.toast('请选择蓝牙打印机'); return; } main = plus.android.runtimeMainActivity(); BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter"); UUID = plus.android.importClass("java.util.UUID"); uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); BAdapter = BluetoothAdapter.getDefaultAdapter(); device = BAdapter.getRemoteDevice(mac_address); plus.android.importClass(device); bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid); plus.android.importClass(bluetoothSocket); if (!bluetoothSocket

Java使用IO流读取TXT文件

耗尽温柔 提交于 2019-12-31 09:39:08
通过BufferedReader读取TXT文件 window系统默认的编码是GBK,而IDE的编码多数为UTF-8,如果没有规定new InputStreamReader(new FileInputStream(file),“GBK”)为GBK会出现读取内容乱码。 //文件路径 String filePath="C:/Users/Admin/Desktop/products.txt"; File file=new File(filePath); BufferedReader reader = null; String tempString = null; int line =1; try { // System.out.println("以行为单位读取文件内容,一次读一整行:"); reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK")); while ((tempString = reader.readLine()) != null) { System.out.println("Line"+ line + ":" +tempString); line ++ ; } reader.close(); } catch (FileNotFoundException e) { e

UNICODE,GBK,UTF-8区别

流过昼夜 提交于 2019-12-29 13:53:48
UNICODE,GBK,UTF-8区别 简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设uncode为a040,gbk为b030,而uft-8码,就是把那个值表现的形式.utf-8码完全只针对uncode来组织的,如果GBK要转UTF-8必须先转uncode码,再转utf-8就OK了. 详细的就见下面转的这篇文章. 谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词 这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题: 问题一: 使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢? 我很早前就发现Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。但这些标记是基于什么标准呢? 问题二

python30题

岁酱吖の 提交于 2019-12-29 02:37:31
1、执行Python 脚本的两种方式 使用python解释器(python aa.py)或在unix系统下赋值成777,执行(./aa.py) 2、简述位、字节的关系 1个byte = 8bit,在ASCII表中,一共有255个字符,一个字符占8位。 3、简述ascii、unicode、utf-­‐8、gbk 的关系 最初的计算机是由美国人发明的,制定了一张包含他们能用到的所有字符和计算机能理解的数字的对应关系。随着计算机的发展和普及,各国都制定了自己的编码,那么ASCII也容纳不了且无法形成统一标准,就推出了Unicode(万国码)。utf-8是可变长的编码,是unicode原 本占2个字节的英文被编码成1个字节,汉字是3个字节,生僻的字符占4-6个字节,节省了传输英文编写文档的空间。gbk是中国人自己的字符集,容纳了2万1千多个字符。 4、请写出“李杰”分别用utf-­‐8 和gbk 编码所占的位数 utf-8用6个字节表示2个汉字,gbk用4个字节 5、Pyhton 单行注释和多行注释分别用什么? 单行注释用“#”,多行注释用'''注释内容''' 6、声明变量注意事项有那些? (1)不能以数字开头(2)只能是字母、数字或下划线的任意组合,但不能有特殊字符(3)关键字通常不能声明为变量 8、如何查看变量在内存中的地址? id(变量名) 9、执行Python程序时,自动生成的

解决Linux Rhythmbox打开mp3乱码问题

烂漫一生 提交于 2019-12-28 23:08:40
只需要把mp3标签里面用gbk、gb18030、big5等编码存储的中文内容修改为Unicode编码,那么基本上所有Linux下的播放器都能正常识别mp3标签了。 关于mp3编码的转换,介绍一个工具----Mutagen,假如你安装了Quod Libet,那么这个包已经安装上去了。如果没有,执行下列命令就可以了。 sudo apt-get install python-mutagen 工具的使用方法 #转换mp3文件所在的目录下,执行: mid3iconv -e gbk *.mp3 #转换当前目录下所有mp3文件(包括子目录)执行: find . -iname "*.mp3" -execdir mid3iconv -e gbk {} \; 如果觉得每次都要输入命令很麻烦,也可以建立个shell脚本来批量转换: 新建文件,写入: #!/bin/sh IFS="" find .-iname "*.mp3"-execdir mid3iconv -e gbk {} \; 然后把文件保存,拷贝到想要转换的目录下,执行就可以了(执行脚本的命令为 #sh filename)。 因 为现在在网上下载的mp3绝大多数采用的都是gbk/gb18030编码,-e gbk 参数是代表把gbk编码的标签转换为Unicode编码,假如mp3标签本身是Unicode编码的就不转换

JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换[引]

安稳与你 提交于 2019-12-28 00:49:14
引自 http://blog.csdn.net/qinysong/archive/2006/09/05/1179489.aspx 1、函数介绍 在Java中,字符串用统一的Unicode编码,每个字符占用两个字节,与编码有关的两个主要函数为: 1)将字符串用指定的编码集合解析成字节数组,完成Unicode-〉charsetName转换 public byte[] getBytes(String charsetName) throws UnsupportedEncodingException  2)将字节数组以指定的编码集合构造成字符串,完成charsetName-〉Unicode转换 public String(byte[] bytes, String charsetName) throws UnsupportedEncodingException 2、Unicode与各编码之间的直接转换 下面以对中文字符串"a中文"的编码转换为例,来了解各种编码之间的转换 1)Unicode和GBK 测试结果如下,每个汉字转换为两个字节,且是可逆的,即通过字节可以转换回字符串 String - GBK 〉 ByteArray:\u0061\u4E2D\u6587(a中文)-〉0x61 0xD6 0xD0 0xCE 0xC4 ByteArray - GBK 〉 String:0x61 0xD6