python 字符串前加u r b的意义

摘自:https://www.cnblogs.com/liangmingshen/p/9274021.html

1、字符串前加 u

例:u"我是含有中文字符组成的字符串。"

作用:

后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。

2、字符串前加 r

例:r"\n\n\n\n”  # 表示一个普通生字符串 \n\n\n\n,而不表示换行了。

作用:

去掉反斜杠的转移机制。

(特殊字符:即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n”表示换行,”\t”表示Tab等。 )

应用:

常用于正则表达式,对应着re模块。

3、字符串前加 b

例: response = b‘<h1>Hello World!</h1>‘     # b‘ ‘ 表示这是一个 bytes 对象

作用:

b" "前缀表示:后面字符串是bytes 类型。

用处:

网络编程中,服务器和浏览器只认bytes 类型数据。

如:send 函数的参数和 recv 函数的返回值都是 bytes 类型

附:

在 Python3 中,bytes 和 str 的互相转换方式是
str.encode(‘utf-8‘)
bytes.decode(‘utf-8‘)



字符串对象给人看的

字节对象是给计算机看的

字符对象-->编码-->字节对象-->解码-->字符对象

acsii编码,只针对英文,一个Bytes代表一个字符

gb2312编码,支持中文,2Bytes代表一个字符

unicode编码,世界上的所有字符,2·4Bytes代表一个字符

utf-8是unicode的实现方式之一,对英文字符只用1Bytes表示,对中文字符用3Bytes



摘自:https://blog.csdn.net/hezh1994/article/details/78899683

以汉字“汉”为例,它的 Unicode 码点是 0x6c49,对应的二进制数是 110110001001001,二进制数有 15 位,这也就说明了它至少需要 2 个字节来表示。这就导致了一些问题,计算机怎么知道你这个 2 个字节表示的是一个字符,而不是分别表示两个字符呢?这里我们可能会想到,那就取个最大的,假如Unicode 中最大的字符用 4 字节就可以表示了,那么我们就将所有的字符都用 4 个字节来表示,不够的就往前面补 0。这样确实可以解决编码问题,但是却造成了空间的极大浪费,如果是一个英文文档,那文件大小就大出了 3 倍,这显然是无法接受的。

UTF-8 是一个非常惊艳的编码方式,漂亮的实现了对 ASCII 码的向后兼容,以保证 Unicode 可以被大众接受。

UTF-8 是目前互联网上使用最广泛的一种 Unicode 编码方式,它的最大特点就是可变长。它可以使用 1 - 4 个字节表示一个字符,根据字符的不同变换长度。编码规则如下:

对于单个字节的字符,第一位设为 0,后面的 7 位对应这个字符的 Unicode 码点。因此,对于英文中的 0 - 127 号字符,与 ASCII 码完全相同。这意味着 ASCII 码那个年代的文档用 UTF-8 编码打开完全没有问题。

对于需要使用 N 个字节来表示的字符(N > 1),第一个字节的前 N 位都设为 1,第 N + 1 位设为0,剩余的 N - 1 个字节的前两位都设位 10,剩下的二进制位则使用这个字符的 Unicode 码点来填充。

编码规则如下:

Unicode 十六进制码点范围 UTF-8 二进制
0000 0000 - 0000 007F 0xxxxxxx
0000 0080 - 0000 07FF 110xxxxx 10xxxxxx
0000 0800 - 0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
0001 0000 - 0010 FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

汉”的 Unicode 码点是 0x6c49(110 1100 0100 1001),通过上面的对照表可以发现,0x0000 6c49 位于第三行的范围,那么得出其格式为 1110xxxx 10xxxxxx 10xxxxxx。接着,从“汉”的二进制数最后一位开始,从后向前依次填充对应格式中的 x,多出的 x 用 0 补上。这样,就得到了“汉”的 UTF-8 编码为 11100110 10110001 10001001,转换成十六进制就是 0xE6 0xB7 0x89。

解码的过程也十分简单:如果一个字节的第一位是 0 ,则说明这个字节对应一个字符;如果一个字节的第一位1,那么连续有多少个 1,就表示该字符占用多少个字节。

原文地址:https://www.cnblogs.com/blogzyq/p/11068728.html

时间: 2024-08-05 15:45:34

python 字符串前加u r b的意义的相关文章

python 字符串前加u,r,b的含义

1.字符串前加u 例如:u'我是含有中文字符的字符串' 作用:后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码. PS:不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行.一般英文字符在使用各种编码下,,基本都可以正常解析, 所以一般不带u. 2.字符串前加r 例如:r'\n\n\n\n'                        输出:'\n\n\n\n'字符串,而不是4个回车 作用:去掉反斜杠的转义机制 ,

Python3 字符串前加“u,r,b”的意义

一.“u” 一般在中文字符串前加u,后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码. 二.“r” 例:r"\n\t\f” 声明后面的字符串是普通字符串,而不转义. 三.“b” python3 中字符串使用unicode编码,若使用bytes,则字符串前加“b” 原文地址:https://www.cnblogs.com/JiaoTou/p/10444047.html

Python -- 字符串前加 u,r,b的含义

u/U:表示unicode字符串 不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码. 一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u:但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码. 建议所有编码方式采用utf8 r/R:非转义的原始字符串 与普通字符相比,其他相对特殊的字符,其中可能包含转义字符,即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n”表示换行,”\t”表示Tab等.而如果是以r开头,那么说明后面

[Python][小知识] Python字符串前 加 u、r、b 的含义

1.字符串前加 u 例:u"我是含有中文字符组成的字符串." 作用:后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码. PS:不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行.一般英文字符在使用各种编码下,,基本都可以正常解析, 所以一般不带u.但是中文有事会出现问题,就要想以前在学校上机敲代码时候一样,优盘一插,源码一拷贝,一打开,中文部分全成框框乱码了...贼尴尬... 2.字符串前加 r 例:r&

Python 字符串前面加u,r,b,f的含义

字符串前加u 后面字符串以 Unicode格式进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码. exp = u"我是含有中文字符组成的字符串." 字符串前加r 去掉反斜杠的转移机制.(特殊字符:即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的"\n"表示换行,"\t"表示Tab等. ) 应用: 常用于正则表达式,对应着re模块. exp = r"\n\n\n\n" # 表示一个

python字符串前面加u,r,b

u/U:表示unicode字符串 不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码. 一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u:但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码. 建议所有编码方式采用utf8 r/R:非转义的原始字符串 与普通字符相比,其他相对特殊的字符,其中可能包含转义字符,即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n”表示换行,”\t”表示Tab等.而如果是以r开头,那么说明后面

python脚本 字符串前加r u是什么意思

网上查看资料: u/U:表示unicode字符串 不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码. 一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u:但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码. 建议所有编码方式采用utf8 r/R:非转义的原始字符串 与普通字符相比,其他相对特殊的字符,其中可能包含转义字符,即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的"\n"表示换行,"\t"

Python 字符串前面加&#39;r&#39;

python中r的用法,r'str'表示raw string,既忽略转义字符.因为和windows不一样,python中认为\就是转义字符escape sequences的标志. 在python2.x中,unicode字符串需要在字符串前加u来表示,比如 str=u'汉字' 而在python3.x中,unicode字符串已经是默认格式,因此不再需要加u, 如果你加了u,会报语法错误: str=u'汉字' SyntaxError: invalid syntax Python 字符串前面加'r'

01-Python字符串前面加u,r,b,f的含义

首先感谢这位博主的分享:https://www.cnblogs.com/walo/p/10608436.html 1.字符串前加 u 例:print(u"我是含有中文字符组成的字符串.") 作用: 后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码. 2.字符串前加 r 例:r"\n\t\r\n” # 表示一个普通生字符串 \n\t\a\n,而不表示  \n 回车换行;  \t  横向跳到下一制表符位置;