gbk编码

python3 unicod,utf-8,gbk的编码和解码中文显示问题

微笑、不失礼 提交于 2020-03-25 21:29:05
python3的字符编码让人头疼。 这个也不是一篇介绍gbk, utf-8, unicode怎么表示英文,中文字符的基础知识总结。 网上有很多类似的文章,目前也不需要升入学习到了解各个bit位表示什么含义。 目的: 清楚了解为什么在python3不同的编码,解码,windows,linux操作系统下,字符是否能够正确显示。 前提: 了解不同编码用不同的二级制编码和长度来表示字符。 在python3中,各种字符编码之间的互相转换都要通过unicode作为中间编码转换。gbk转换成unicode,再从unicode转换成utf-8。 分析: 要区分4种编码解码概念, 1.编写代码文件时的编码。 notepad++ 在菜单“编码”中有选择,在状态栏可以看到编码类型。 pycharm 在菜单"file","editor","file encoding"中可以设置默认编码。在状态栏可以看到编码类型。 2.python3代码中申明的解码格式。 在代码中#coding=gbk。 编码声明告诉了python编译器以什么格式的编码来解码.py文件,它不会改变系统默认编码和本地默认编码, 也不是用于声明当前代码文件的编码格式的,而是声明当前代码文件的解码方式。换句话说, 代码文件的编码格式取决于你使用的编辑器,而如何解码该文件取决于文件头处的编码声明。 一般地,编码格式应当与解码格式一致

python编码和小数据池

我的梦境 提交于 2020-03-24 17:37:48
python_day_6 一. 回顾上周所有内容 一. python基础 Python是一门解释型. 弱类型语言 print("内容", "内容", end="\n") 打印语句 变量: 程序运行过程中产生的中间值. 存储在内存中.供后面的程序调用 变量的数据类型:     int, 整数 str, 字符串 bool, True,False   5. 命名规则: 由数字,字母,下划线组成 不能是纯数字或者数字开头 不能是关键字 不能太长 要有意义 不要用中文 区分大小写 推荐使用驼峰和下划线命名 input() 用户输入 if 判断 if 条件: 代码块 else: 代码块 if 条件: 代码块 elif 条件2: 代码块 .. else: 二. while循环 while 条件: 循环体 else: 代码块 流程: 判断条件是否为真. 如果真.执行循环体. 再次判断条件是否真. ....直到条件为假. 执行else. 退出循环 break 直接打断循环. continue 停止当前本次循环. 继续执行下一次循环 格式化输出: %s 字符串 %d 数字 运算符: 逻辑运算 1. and. 两端同时为真. 结果才是真. 2. or 或者. 两端有一个是真. 结果就是真 3. not 取反. () => not => and => or x or y 如果x非零, x, 否则 y 编码

python的编码问题

别来无恙 提交于 2020-03-24 09:35:58
最近在用python写一些辅助脚本,发现每次运行的时候都会出现无法解析的字符编码的问题 后来发现是因为在代码的头里面加了这么一行 #coding=utf-8 加了这么一行就会出现这个错误 SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xb4 in position 0: invalid start byte 这个错误的大概意思就是python在寻找UTF-8标致头的时候出现了错误 出现这个错误的原因是我们在文件头给python指定了编码为UTF-8,但是我们文件确是以GBK的方式存储的 所以只要把utf-8改成gbk就可以了,这样python就会认为这是一个gbk的编码文件,而不会想去查找UTF-8的头 题外话: 为了识别文件究竟是UTF-8还是ASCII,一般UTF-8都会在文件头部加入EF BB这个头,而GBK是没有头的,所以python发现没有这个头则会认为是错误的 之前在用QT的时候也遇到了这些问题 http://www.cnblogs.com/linyilong3/p/4868697.html 其实中文编码的问题已经存在很多年了,只是一直没人去解决,最近我开始碰到后,才开始着手解决这个问题,争取有空把原来的中文问题都解决掉 来源: https://www.cnblogs.com

Python中使用中文

吃可爱长大的小学妹 提交于 2020-03-19 12:37:46
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.pytho n.org/peps/pep-0263.html for details 偷偷地把文件编码改成UTF-8: E:/Project/Python/Test>python ChineseTest.py File "ChineseTest.py", line 1

Python疑难杂症:SyntaxError: Non-ASCII character Python中文处理问题

心已入冬 提交于 2020-03-19 12:36:49
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 noencodingdeclared; see http://www.pytho n.org/peps/pep-0263.html for details 偷偷地把文件编码改成UTF-8: E:\Project\Python\Test>python ChineseTest.py File "ChineseTest.py", line 1

Python疑难杂症:SyntaxError: Non-ASCII character Python中文处理问题

丶灬走出姿态 提交于 2020-03-19 12:36:11
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 noencodingdeclared; see http://www.pytho n.org/peps/pep-0263.html for details 偷偷地把文件编码改成UTF-8: E:\Project\Python\Test>python ChineseTest.py File "ChineseTest.py", line 1

php mssql 中文各种乱码

半城伤御伤魂 提交于 2020-03-16 12:46:04
1 查询输出时乱码 (SELECT ) 因为MSSQL 数据库一般都是 GBK 编码,所以在php页面中加入 header('Content-Type:text/html; charset=GBK'); 也可以使用 以下语句查看: 然后按对应表设置字符集. SELECT COLLATIONPROPERTY('Chinese_PRC_90_CI_AI', 'CodePage') 返回值对应表: 936 简体中文GBK 950 繁体中文BIG5 437 美国/加拿大英语 932 日文 949 韩文 866 俄文 65001 unicode UFT-8 2 插入时乱码(INSERT) 插入时乱码,要对查询的 sql 语句进行字符集的转换 $insert = "Insert into peple(name,sex) VALUES(N'帅哥','male') ";$insert = iconv("utf-8", "gbk", $insert); 3 更新时(UPDATE) 同上,对更新SQL语句进行 字符集的转换. 来源: https://www.cnblogs.com/BinBinGo/p/5693732.html

一文说清文本编码那些事

只谈情不闲聊 提交于 2020-03-15 20:34:19
一直以来,编码问题像幽灵一般,不少开发人员都受过它的困扰。 试想你请求一个数据,却得到一堆乱码,丈二和尚摸不着头脑。有同事质疑你的数据是乱码,虽然你很确定传了 UTF-8 ,却也无法自证清白,更别说帮同事 debug 了。 有时,靠着百度和一手瞎调的手艺,乱码也能解决。尽管如此,还是很羡慕那些骨灰级程序员。为什么他们每次都能犀利地指出问题,并快速修复呢?原因在于,他们早就把编码问题背后的各种来龙去脉搞清楚了。 本文从 ASCII 码说起,带你扒一扒编码背后那些事。相信搞清编码的原理后,你将不再畏惧任何编码问题。 从 ASCII 码说起 现代计算机技术从英文国家兴起,最先遇到的也是英文文本。英文文本一般由 26 个字母、 10 个数字以及若干符号组成,总数也不过 100 左右。 计算机中最基本的存储单位为 字节 ( byte ),由 8 个比特位( bit )组成,也叫做 八位字节 ( octet )。 8 个比特位可以表示 $ 2^8 = 256 $ 个字符,看上去用字节来存储英文字符即可? 计算机先驱们也是这么想的。他们为每个英文字符编号,再加上一些控制符,形成了我们所熟知的 ASCII 码表。实际上,由于英文字符不多,他们只用了字节的后 7 位而已。 根据 ASCII 码表,由 01000001 这 8 个比特位组成的八位字节,代表字母 A 。 顺便提一下,比特本身没有意义,

“错误:编码GBK的不可映射字符”怎么破

白昼怎懂夜的黑 提交于 2020-03-08 04:39:39
第一篇尝试写博文,谬误之处,欢迎指正! 应该不是我一个人的JAVA老师不让用IDE,于是用记事本写,cmd命令行运行(程序中有中文输出) 以下是错误做法 网上很多说法改编码类型,去UE里找了半天也没看到在哪改,仔细检查操作过程,终于找到了问题所在 utf-8编码是unicode编码在网络之间传输时的一种“桥梁”编码。使其在网络之间传输时可以节约数据量。当保存为utf-8形式时,搜索文本里的中文根本找不到,再看编码选项中的ANSI选项 使用多个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码。在使用记事本保存时,将编码改成ANSI,就好啦! 来源: CSDN 作者: 行铭决 链接: https://blog.csdn.net/weixin_43905108/article/details/104667509

python编程学习问题汇总

北城以北 提交于 2020-03-08 02:50:16
1.SyntaxError: Non-UTF-8 code starting with '\xc4' :python 代码编码问题 解决方法:在py文件的最开始位置加上:# coding=gbk # coding=gbk try: year = int(input('input year:')) except ValueError: print('年份要输入数字') 运行结果: 异常是为了保证程序能够正常的运行下去。 异常是在出现错误的时候采用正常控制流之外的操作。 异常处理的一般流程:检测到错误,引发异常;对异常进行捕获的操作。 多个异常可以使用“,”进行隔开。如下:except (ValueError, ArithmeticError, KeyError): 捕获异常并提示错误信息 try: print(1/0) except ZeroDivisionError as e: print('0不能做除数 %s' %e) 自己定义错误的提示信息raise try: raise NameError('helloError') except NameError: print('my custom error') 捕获所有的错误使用except Exception as e: 完整代码: try: a = open('name.txt') except Exception as e: