gbk

解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\\xXX' in position XX

≡放荡痞女 提交于 2020-03-12 09:56:04
从网上抓了一些字节流,想打印出来结果发生了一下错误: UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 8530: illegal multibyte sequence 转自: https://blog.csdn.net/jim7424994/article/details/22675759?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task 能很好的解决问题 但每次都要添加很麻烦,希望有人在能解决 来源: https://www.cnblogs.com/chenxujin/p/12467242.html

宽字节注入原理分析

吃可爱长大的小学妹 提交于 2020-03-11 03:44:55
前言 什么是宽字节注入? 可以简单的理解成,拼凑转义符(\)。组成一个新的字符 而形成 宽字节注入 的方法,有: SET NAMES 'gbk' 或者(上面一行等于 下面三行) SET character_set_connection='gbk' SET character_set_results='gbk' SET character_set_client=gbk 所以,一般情况下都是用第一行来设置编码的。 正文: 0x01 宽字节注入原理(源码) <?php $conn = mysql_connect('localhost', 'root', 'root') or die('bad!'); mysql_select_db('test', $conn) OR emMsg("数据库连接失败"); mysql_query("SET NAMES 'gbk'",$conn); $id = addslashes($_GET['id']); $sql="select * from user where id='$id'"; $result = mysql_query($sql, $conn) or die(mysql_error()); $row = mysql_fetch_array($result); if($row){ echo $row['username'] . $row[

linux ftp客户端的编码问题

狂风中的少年 提交于 2020-03-10 10:27:52
准备下载ftp上的文件,记得curl可以实现下载ftp的文件,然后尝试了, curl ftp://username:password@192.168.1.2/平台全量包/package0811.zip -o package0811.zip 结果是卡住不动了!卡住不动了!卡住不动了!没有出现预想的下载进度条。 怀疑自己的命令写错了,然后使用ftp客户端 #ftp >open 192.168.1.2 >username >password >ls 输入完上面的命令之后发现中文乱码啊 百度搜索了个中ftp客户端乱码的问题,大部分都是windows的问题(感觉google靠谱,虽然麻烦)。 然后自己开始探索,第一步在ssh终端上修改当前会话的编码,修改为gbk,然后使用ftp登录,发现使用ls命令之后能显示中文路径,但是【cd 平台全量包】之后,就会卡住不动了。不得不管理终端页面。心想既然是编码的问题,那就从编码下手吧,远程的FTP server的编码是gbk的,而且我这边也修改不了。linux 的FTP命令行客户端也不能修改编码。然后突然想使用window的命令行试试,结果正常,能够cd目录。看样子跟命令行环境也有关系,修改shell环境变量 #export LANG="zh_CN.GBK" 再次尝试,OK,可以正常的浏览中文目录。 后来也尝试过其他的方法,最简单的就是修改终端的编码

“错误:编码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:

深入理解Python字符编码

社会主义新天地 提交于 2020-03-07 12:45:24
不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError、UnicodeDecodeError 错误,每当遇到错误我们就拿着 encode、decode 函数翻来覆去的转换,有时试着试着问题就解决了,有时候怎么试都没辙,只有借用 Google 大神帮忙,但似乎很少去关心问题的本质是什么,下次遇到类似的问题重蹈覆辙,那么你有没有想过一次性彻底把 Python 字符编码给搞懂呢? 完全理解字符编码 与 Python 的渊源前,我们有必要把一些基础概念弄清楚,虽然有些概念我们每天都在接触甚至在使用它,但并不一定真正理解它。比如:字节、字符、字符集、字符码、字符编码。 字节 字节(Byte)是计算机中数据存储的基本单元,一字节等于一个8位的比特,计算机中的所有数据,不论是保存在磁盘文件上的还是网络上传输的数据(文字、图片、视频、音频文件)都是由字节组成的。 字符 你正在阅读的这篇文章就是由很多个字符(Character)构成的,字符一个信息单位,它是各种文字和符号的统称,比如一个英文字母是一个字符,一个汉字是一个字符,一个标点符号也是一个字符。 字符集 字符集(Character Set)就是某个范围内字符的集合,不同的字符集规定了字符的个数,比如 ASCII 字符集总共有128个字符,包含了英文字母、阿拉伯数字

QT乱码对策

为君一笑 提交于 2020-03-07 09:28:58
1 using namespace std; 2 3 //#pragma execution_character_set("UTF-8") 4 int main(int argc, char *argv[]) 5 { 6 QApplication a(argc, argv); 7 QString str = QStringLiteral("中文测试"); 8 //str = "中文测试"; 9 qDebug() << str; 10 //QMessageBox::information(0, "title", str); 11 char *src = "元数据中文GBK"; 12 13 //元数据是gbk或者gb2312 多字节存入QString 14 //本地编码方式 默认GBK 15 QString str1 = QString::fromLocal8Bit(src); 16 qDebug() << "str1 = " << str1; 17 18 //把QString 转为gbk 19 cout << str1.toLocal8Bit().toStdString() << endl; 20 //本地处理编码方式,默认是GBK,改为UTF-8 21 QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

MySQL解决DOS命令窗口乱码问题

一笑奈何 提交于 2020-03-07 04:41:37
乱码问题如下: 导致问题产生的原因很简单,无非是命令行的编码和MySQL内部设置的编码出现了偏差。我们右键属性查看以下命令行的编码方式是GBK。 解决: mysql > show variables like 'character%' ; -- 模糊查询character开头的全局变量 character_set_client:客户端的字符集 character_set_connection:连接的字符集 character_set_results:查询结果的字符集 可以将上面三者分别设置为GBK: set xxx = gbk; 可以简便地: set names gbk; 当然,上面两步操作都是暂时性的,下次开启还是会这样,所以图形化界面真香。 至此,就已经结束: 来源: CSDN 作者: 天乔巴夏丶 链接: https://blog.csdn.net/Sky_QiaoBa_Sum/article/details/104704018

python编码(六)

こ雲淡風輕ζ 提交于 2020-03-06 04:38:51
1. 字符编码简介 1.1. ASCII ASCII (American Standard Code for Information Interchange),是一种单字节的编码。计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制符号。不过ASCII只用到了其中的一半(\x80以下),这也是MBCS得以实现的基础。 1.2. MBCS 然而计算机世界里很快就有了其他语言,单字节的ASCII已无法满足需求。后来每个语言就制定了一套自己的编码,由于单字节能表示的字符太少,而且同时也需要与ASCII编码保持兼容,所以这些编码纷纷使用了多字节来表示字符,如 GBxxx 、 BIGxxx 等等,他们的规则是,如果第一个字节是\x80以下,则仍然表示ASCII字符;而如果是\x80以上,则跟下一个字节一起(共两个字节)表示一个字符,然后跳过下一个字节,继续往下判断。 这里,IBM发明了一个叫Code Page的概念,将这些编码都收入囊中并分配页码,GBK是第936页,也就是 CP936 。所以,也可以使用CP936表示GBK。 MBCS (Multi-Byte Character Set)是这些编码的统称。目前为止大家都是用了双字节,所以有时候也叫做 DBCS (Double-Byte Character Set)。必须明确的是

Python2.X和Python3.X文件对话框、下拉列表的不同

久未见 提交于 2020-03-06 03:43:22
今天初次使用Python Tkinter来做了个简单的记事本程序。发现Python2.x和Python3.x的Tkinter模块的好多内置函数都有所改变,这里简单整理一下以备日后查验。 一.导入方式:   Python2.x:     from Tkinter import *   Python3.x:     from tkinter import * 二.打开文件框:   Python2.X:     import tkFileDialog     filename = tkFileDialog.askopenfilename(filetypes=[("bmp格式".decode('gbk'),"bmp")])     #注意:Python2.X会有中文乱码问题,需要在"中文"后加.decode('gbk') 。Python3.X则不需要     这里可以加入属性: initialdir 设置默认初始路径。即:     FileName = tkFileDialog.askopenfilename(filetypes=[("bmp格式".decode('gbk'),"bmp")], initialdir = 'E:')   Python3.X:     import tkinter.filedialog     filename=tkinter.filedialog