字符编码

也谈 Python 的中文编码处理

穿精又带淫゛_ 提交于 2020-03-06 04:32:37
转载自: http://in355hz.iteye.com/blog/1860787 最近业务中需要用 Python 写一些脚本。尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息。 很快,我就遇到了异常: Python代码 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0- 3: ordinal not in range( 128) 为了解决问题,我花时间去研究了一下 Python 的字符编码处理。网上也有不少文章讲 Python 的字符编码,但是我看过一遍,觉得自己可以讲得更明白些。 下面先复述一下 Python 字符串的基础,熟悉此内容的可以跳过。 对应 C/C++ 的 char 和 wchar_t, Python 也有两种字符串类型,str 与 unicode: Python代码 # -*- coding: utf-8 -*- # file: example1.py import string # 这个是 str 的字符串 s = '关关雎鸠' # 这个是 unicode 的字符串 u = u '关关雎鸠' print isinstance(s, str) # True print isinstance(u, unicode) # True

深入理解计算机系统cp1:存储单位与编码

喜欢而已 提交于 2020-03-05 16:03:30
摘要: 理解计算机是如何存储数据的。 原文: 深入理解计算机系统cp1:存储单位与编码 作者: Chor Fundebug 经授权转载,版权归原作者所有。 1. 存储单位 位:即 bit,表示二进制位,要么是 0 ,要么是 1。它是计算机内部数据存储的最小单位。比如 11010100 共有8个二进制位,是一个8位二进制数。 字节:即 byte,它由8个二进制位构成,即 1byte=8bit,是计算机内部计量的基本单位。一个英文字符占1个字节(8位),一个汉字占2个字节(16位) 字:即word,它由若干个字节构成,是计算机内部进行数据处理和运算的基本单位。字的总的位数称为字长,不同档次的计算机字长是不一样的,比如32位机,它的1个字由4个字节构成,字长为32位,也就是说其CPU一次操作处理的实际位数是32位。同理,64位机可以处理64位。由此可见,计算机的字长越大,其性能越优越。 KB,MB:1024byte = 1KB,1024KB = 1MB。往上还有GB,TB。 PS:数据传输大多以 bit 为单位,比如我们常说的网速100M/s,M/s其实Mbit/s,也就是兆比特每秒,我们还可以写成100Mbps。 2. 编码 2.1 为什么需要编码? 计算机只能理解0和1,无法理解英文、字母、汉字和其他特殊字符,这些字符需要经过编码才能成为计算机可以理解的二进制数。

python语言基础笔记

扶醉桌前 提交于 2020-03-05 07:52:47
二进制数据则由bytes类型表示 python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字节为单位的。 b'\xe4\xb8\xad\xe6\x96\x87' \x表示16进制 ______________________________________________________________________________ #coding=gbk var=input("请输入十六进制数:") #16进制转化二进制 b=bin(int(var,16)) print(b[2:]) _____________________________________________________________________________________ print(format(ord('周'),'b')) 中文转化8进制再转二进制; string:UNICODE unicode类型名词叫:string unicode是文本显示用,根据不同的软件可以encoding不同的软件显示编码。 bytes: bytes bytes类型名词叫:bytes python3编码最大的改变: 把字节串与字符串彻底分开!bytes为存储字节码编码方式 (中文显示unicode,encode--utf8-

谈谈字符编码

℡╲_俬逩灬. 提交于 2020-03-03 01:11:28
字符编码,向来是个老大难的问题,从python 2.7,到windows下各种中文乱码,再到mysql中文字符的传输存储和显示,每个程序员都应该趟过这些个坑。 今天好好聊聊字符编码的问题,算是一个总结。总结力求简洁明了,不求长篇大论。 问题1:啥是UTF-8, UTF-16, Unicode, ASCII, ANSI? 这个问题问的很多,不详细解释,直接附上stackoverflow的解答( https://stackoverflow.com/questions/700187/unicode-utf-ascii-ansi-format-differences ),然后我再评述一下 "Unicode" isn't an encoding, although unfortunately, a lot of documentation imprecisely uses it to refer to whichever Unicode encoding that particular system uses by default. On Windows and Java, this often means UTF-16; in many other places, it means UTF-8. Properly, Unicode refers to the abstract

IMDB情感分类学习

我只是一个虾纸丫 提交于 2020-03-03 00:53:04
需要学习链接: 使用pandas做预处理, https://blog.csdn.net/mpk_no1/article/details/71698725 https://www.jianshu.com/p/8d3f929c9444 1.我的想法: 1.首先是要读取数据集,建立字典,将word转为id准备输入; 2.想获取数据文本的长度分布,然后做截断,但不知道怎么写; 但是链接中考虑的更全面 1.去掉非ASCII字符,2.去掉换行符,3.转换为小写。 https://blog.csdn.net/icbm/article/details/79747024 非ASCII字符: [^\x00-\x7f] 比如这样。就是不在ASCII编码中的字符吧。 其中用到了pandas库, 来源: https://www.cnblogs.com/BlueBlueSea/p/12399185.html

PHP加密函数

允我心安 提交于 2020-03-03 00:47:02
PHP中的加密方式有如下几种 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串。 raw_output -- 如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。 这是一种不可逆加密,执行如下的代码 $password = '123456'; echo md5($password); 得到结果是e10adc3949ba59abbe56e057f20f883e 2. Crype加密 string crypt ( string $str [, string $salt ] ) crypt() 返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。 参数 str -- 待散列的字符串。 salt -- 可选的盐值字符串。如果没有提供,算法行为将由不同的算法实现决定,并可能导致不可预料的结束。 这是也一种不可逆加密,执行如下的代码 复制代码 代码如下: $password = '123456'; $salt = "test";// 只取前两个 echo crypt($password, $salt); 得到的结果是teMGKvBPcptKo 使用自动盐值的例子如下: 复制代码 代码如下:

【计算机网络高分笔记】第三章:数据链路层

无人久伴 提交于 2020-03-02 22:20:39
【计算机网络高分笔记】第三章:数据链路层 标签(空格分隔):【计算机网络】 第三章:数据链路层 第三章:数据链路层 3.1 数据链路层的功能 3.2 组帧 3.3 差错控制 3.3.1 检错编码 3.3.2 纠错编码 3.4 流量控制与可靠传输机制 3.4.1 流量控制 3.4.2 可靠传输机制 3.4.3 滑动窗口机制 3.4.4 停止-等待协议 3.4.5 后退N帧(GBN)协议 3.4.6 选择重传(SR)协议 3.4.7 发送缓存和接受缓存 我的微信公众号 大纲要求: 数据链路层功能 组帧 差错控制 检错编码 纠错编码 流量控制与可靠传输 流量控制、可靠传输与滑动窗口机制 停止-等待协议 后退 N 帧(GBN)协议 选择重传(SR)协议 介质访问控制 信道划分介质访问控制:频分多路复用、时分多路复用、波分多路复用、码分多路复用的概念和基本原理。 随机访问介质访问控制:ALOHA 协议、CSMA 协议、CSMA/CD 协议、CSMA/CA 协议 轮询访问介质访问控制:令牌传递协议 局域网 局域网的基本概念与体系结构 以太网与 IEEE 802.3 IEEE 802.11 令牌环网的基本原理 广域网 广域网的基本概念 PPP HDLC协议 数据链路层设备 网桥的概念和基本原理 局域网交换机及其工作原理 考点和要点分析 核心考点: 流量控制与可靠传输机制、CSMA/CD原理

关于SQL注入中编码问题的疑问

落花浮王杯 提交于 2020-03-02 19:44:43
提到SQL注入的绕过,编码是其中最普通的一种方法,最常用的URL编码。之前一直有个疑问,编码与未编码到底有哪些地方存在区别? 以下是本人自己对URL编码的一些见解,可能有错误的地方欢迎大佬们指正。 什么是URL编码。 “URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的 name 和其对应的 value ,将他们以 name/value 编码方式作为URL的一部分或者分离的发送到服务器上。” 如何进行URL编码。 “每对name/value由&分开,每对来自表单的name/value用=分开。如果用户没有输入值的那个name依旧会出现不过就是没有值。 URL编码是在字符 ASCII码 的十六进制数的前面加上%。例如\(十六进制数表示为5c)的URL编码就是%5c。” 为什么要用URL编码。 RFC3986文档规定,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符。 US-ASCII码中的10-7F字节全都表示控制字符,这些字符都不能直接出现在Url中。同时,对于80-FF字节(ISO-8859-1),由于已经超出了US-ACII定义的字节范围,因此也不可以放在Url中。 Url可以划分成若干个组件,协议、主机、路径等。有一些字符(:/?#[]@)是用作分隔不同组件的。例如:冒号用于分隔协议和主机,

工作中使用的utf8与utf8mb4记录

£可爱£侵袭症+ 提交于 2020-03-02 11:13:28
一、起源 我们工作中使用到了 Emoji 表情,发现utf8不能很好支持 二、研究utf8mb4 MySQL在5.5.3之后增加utf8mb4的编码,mb4表示most bytes 4,专门用来兼容四字节的unicode,utf8 编码最大字符长度为 3 字节, 4 字节的字符插入会产生异常,utf8mb4 会需要更大空间,排序规则选择 utf8mb4_general_ci、utf8mb4_unicode_ci,utf8mb4_general_ci对比utf8mb4_unicode_ci速度快,但精准性要低 来源: 51CTO 作者: 素颜猪 链接: https://blog.51cto.com/suyanzhu/2474831

mysql的collation

拥有回忆 提交于 2020-03-02 03:02:28
mysql的collation大致的意思就是字符序。首先字符本来是不分大小的,那么对字符的>, = , < 操作就需要有个字符序的规则。collation做的就是这个事情,你可以对表进行字符序的设置,也可以单独对某个字段进行字符序的设置。一个字符类型,它的字符序有多个,比如: 下面是UTF8对应的字符序。 utf8_general_ci utf8 33 Yes Yes 1 utf8_bin utf8 83 Yes 1 utf8_unicode_ci utf8 192 Yes 8 utf8_icelandic_ci utf8 193 Yes 8 utf8_latvian_ci utf8 194 Yes 8 utf8_romanian_ci utf8 195 Yes 8 utf8_slovenian_ci utf8 196 Yes 8 utf8_polish_ci utf8 197 Yes 8 utf8_estonian_ci utf8 198 Yes 8 utf8_spanish_ci utf8 199 Yes 8 utf8_swedish_ci utf8 200 Yes 8 utf8_turkish_ci utf8 201 Yes 8 utf8_czech_ci utf8 202 Yes 8 utf8_danish_ci utf8 203 Yes 8 utf8_lithuanian