python中一个汉字点3个字节? utf-8

今天发现了一个汉字占了3个字节,一开始以为是两个呢,字符串切片时总出现乱码,后来才发现一个中文占3个字节。这才解决了乱码问题

原来  1。 utf-8 编码中,一个汉字占三个字节。英文字母是一个占用一个字节。

参考链接:https://blog.csdn.net/cadi2011/article/details/82048702

我发现python里面,汉子的长度,一个是占3个

1、难道是因为 utf-8话一个汉子是占用了3个字节

2、反正今天顺着一个bug,想看看字符串的长度,结果一串英文,妥妥的一个字符占用一个字节

3、一个中文,反而占用3个字节,也是醉了,学习了

原文地址:https://www.cnblogs.com/yoyoma0355/p/10600113.html

时间: 2024-08-29 02:31:38

python中一个汉字点3个字节? utf-8的相关文章

由“Java中一个字符占两个字节”引起

起因 Java中一个字符占两个字节,这和C/C++稍有区别.在C/C++中我们可以通过sizeof运算符方便地知道某个变量类型或对象的大小,那在Java中又如何? 问题出现 Java为什么没有提供sizeof运算符? 要回答这个问题,我们可以从另一个角度来看,那就是为什么C/C++中提供sizeof运算符.这就让人忍不住想到C/C++和Java在内存管理上的区别. 在C中,内存分配和释放的任务交给了程序员,当我们尝试用malloc为某个对象分配一块堆内存时,一个无法逃避的问题是,这个即将被创建的

python中一个简单的webserver

python中一个简单的webserver 2013-02-24 15:37:49 分类: Python/Ruby 支持多线程的webserver 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/python from SocketServer import ThreadingMixIn from BaseHTTPServer import HTTPServer,BaseHTTPRequestHandler cla

Java一个汉字占几个字节(详解与原理)(转载)

1.先说重点: 不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的,可能是2个.3个.4个字节: 2.以下是源码: 1 @Test 2 public void test1() throws UnsupportedEncodingException { 3 String a = "名"; 4 System.out.println("UTF-8编码长度:"+a.getBytes("UTF-8").length); 5 Sys

java 中一个char包含几个字节

背景 ??char包含几个字节可能记得在上学的时候书上写的是2个字节,一直没有深究,今天我们来探究一下到底一个char多少个字节? Char ??char在设计之初的时候被用来存储字符,可是世界上有那么多字符,如果有1个字节,那么就意味着只能存储256中,显然不合适,而如果有两个字节,那么就可以存储65536种.这个数量符合大多数国家的语言字符的个数.于是Java团队默认使用unicode作为编码,一个char作为2个字节来存储. ??这里就有两个问题了? ????1. java的char一定会

php中一个字符占用几个字节?

先看看字符与字节有什么区别: (一)"字节"的定义 字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位. (二)"字符"的定义 字符是指计算机中使用的文字和符号,比如1.2.3.A.B.C.~!·#¥%---*()--+.等等. 数字.字母等符号都是字符,字符只占一个字节,汉字占两个(UTF-8) 不同的编码格式下字符占用的字节时不同的: ANSI 中文字符2.英文字符1字节UTF-8 中文字符3.英文字符1字节Unic

python中一个月有多少天

calendar 在python的datetime模块中没有一个月有多少天的方法,但是可以使用calendar模块获得. 如下代码: import calendar monthRange = calendar.monthrange(2013,6) print monthRange 输出: (5, 30) 输出的是一个元组,第一个元素是上一个月的最后一天为星期几(0-6),星期天为0;第二个元素是这个月的天数. 获取指定时间的时间戳 datetime.datetime(year=now.year,

python中一个函数实现读写文件、判断价格正确常用函数

# 写一个函数,有2个功能,能读文件,也能写文件 # 读文件,只需要传文件名 # 写文件,需要传文件名,写入的内容 import json def op_file(file, content=None): if content: with open(file, 'w', encoding='utf-8') as fw: json.dump(content, fw) else: with open(file, encoding='utf-8') as fw: result = json.load(

如何判断一个字节是否是一个汉字中的一部分

UNICODE是万能编码,包含了所有符号的编码,它规定了所有符号在计算机底层的二进制的表示顺序. 在UTF-8编码中一个中文占三个字节 比如 汉字 "张" 对应的三字节编码是[229 188 160] 但是如何判断,229 188 160 是组合的呢,这里涉及到一套规则 UTF规定: 如果一个符号只占一个字节,那么这个8位字节的第一位就为0. 如果为两个字节,那么规定第一个字节的前两位都为1,然后第一个字节的第三位为0,第二个字节的前两位为10 然后如果是三个字节的话,那么第一个字节的

一个汉字在数据库占几个字节

项目中oracle10g数据库表字段为varchar(n)类型,存英文很简单,只要字母个数不大于n即可.但是对于汉字,按照同样的方法就不行了.因为对于汉字不同的字符集,在数据库占用的字节是不一样的.UTF-8字符集,一个汉字占三个字节,gbk字符集,一个汉字占两个字节,比如varchar(10)类型的字段,UTF-8的汉字,只能存3个,gbk字符集的汉字却能存5个.所以在程序中根据表字段varchar的大小,保存或更新时作出必要的校验否则后台会报错.办法:1.用表格 maxlength属性,比如