字符编码

python进阶学习笔记2

可紊 提交于 2019-12-29 18:57:43
01字符串编码 ord()和chr()函数 python 3中字符串是以Unicode编码实现,对单个字符,可以使用ord()函数获取字符的完整表示,chr()函数把编码转为对应的字符: >> > print ( '包含中文的str' ) 包含中文的 str >> > ord ( 'A' ) 65 >> > ord ( '中' ) 20013 >> > chr ( 66 ) 'B' >> > chr ( 20091 ) '乻' >> > chr ( 20089 ) '乹' >> > chr ( 20099 ) len()函数计算str字符数 也可以计算bytes的字节数(python字符串类型是str,在内存中是Unicode表示,在网络中传输,或者保存到磁盘上就需要变为以字节为单位的bytes) python对bytes类型的数据用带b前缀的单引号或双引号表示。 x=b’ABC’ >> > len ( b 'ABC' ) 3 >> > len ( '中文' ) 2 编码encode()方法和解码decode()方法 以Unicode表示的str通过encode()方法可以编码为指定的bytes 反过来,如果从网络或磁盘上读取了字节流,那么读到的数据就是bytes此时要用decode()方法解码。 >> > '中文' . encode ( "utf-8" ) b '\xe4\xb8

UNICODE,GBK,UTF-8区别

流过昼夜 提交于 2019-12-29 13:53:48
UNICODE,GBK,UTF-8区别 简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设uncode为a040,gbk为b030,而uft-8码,就是把那个值表现的形式.utf-8码完全只针对uncode来组织的,如果GBK要转UTF-8必须先转uncode码,再转utf-8就OK了. 详细的就见下面转的这篇文章. 谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词 这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题: 问题一: 使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢? 我很早前就发现Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。但这些标记是基于什么标准呢? 问题二

ORACLE基本数据类型总结

老子叫甜甜 提交于 2019-12-29 10:23:03
ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型、数字类型、日期类型、LOB类型、LONG RAW& RAW类型、ROWID & UROWID类型。 在讲叙字符串类型前,先要讲一下编码。字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB)两种。数据库中的字符串数据都通过字符集将字符转换为数字后(二进制),才存储到数据块中。通过不同的编码集转换,即便是相同的字符,也可能会转换成不同的二进制编码。这也是产生乱码的原因。数据库的编码格式一般是在创建数据库时指定的。当然也可以修改数据库的编码。 查看数据库视图所包含的数据类型:SELECT * FROM DBA_TYPES WHERE OWNER IS NULL.具体细节情况参见 Oracle® Database SQL Language Quick Reference 10/11 g 或 官方文档 一 字符串类型 字符串数据类型还可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种. 所谓固定长度:是指虽然输入的字段值小于该字段的限制长度,但是实际存储数据时,会先自动向右补足空格后,才将字段值的内容存储到数据块中

XDOJ—139—字符编码

╄→尐↘猪︶ㄣ 提交于 2019-12-28 19:00:00
XDOJ—139—字符编码 2019.12.29日 字符编码 时间限制:1S 内存限制:10000Kb 问题描述: 请编程序将“China”译成密码,密码规律是:用原来字母后面第四个字母代替原来的字母。例如“A”后面的第四个字母是“E”,用“E”代替“A”,因此,“China”应译为“Glmre”。 输入说明: 用赋初值的方法使c1,c2,c3,c4,c5这五个变量的值分别为‘C’,‘h’,‘i’‘n’,‘a’,字符之间以空格分隔。 输出说明: 经过运算,使c1,c2,c3,c4,c5分别变成‘G’,‘l’,‘m’,‘r’,‘e’。用printf函数输出这五个字符 输入样例: C h I n a 输出样例: Glmre # include <stdio.h> # include <string.h> int main ( ) { char yuan [ 5 ] , hou [ 5 ] ; int i ; scanf ( "%c %c %c %c %c" , & yuan [ 0 ] , & yuan [ 1 ] , & yuan [ 2 ] , & yuan [ 3 ] , & yuan [ 4 ] ) ; for ( i = 0 ; i < 5 ; i ++ ) { yuan [ i ] + = 4 ; printf ( "%c" , yuan [ i ] ) ; }

JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换[引]

安稳与你 提交于 2019-12-28 00:49:14
引自 http://blog.csdn.net/qinysong/archive/2006/09/05/1179489.aspx 1、函数介绍 在Java中,字符串用统一的Unicode编码,每个字符占用两个字节,与编码有关的两个主要函数为: 1)将字符串用指定的编码集合解析成字节数组,完成Unicode-〉charsetName转换 public byte[] getBytes(String charsetName) throws UnsupportedEncodingException  2)将字节数组以指定的编码集合构造成字符串,完成charsetName-〉Unicode转换 public String(byte[] bytes, String charsetName) throws UnsupportedEncodingException 2、Unicode与各编码之间的直接转换 下面以对中文字符串"a中文"的编码转换为例,来了解各种编码之间的转换 1)Unicode和GBK 测试结果如下,每个汉字转换为两个字节,且是可逆的,即通过字节可以转换回字符串 String - GBK 〉 ByteArray:\u0061\u4E2D\u6587(a中文)-〉0x61 0xD6 0xD0 0xCE 0xC4 ByteArray - GBK 〉 String:0x61 0xD6

HTML5 UTF-8 中文乱码

≡放荡痞女 提交于 2019-12-28 00:44:23
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>HTML5的标题</title> </head> <body> <p>HTML5的内容!Hello</p> </body> </html> 我是用记事本写的,保存后在网页上运行竟然出现了乱码。换成GB2312能正确显示中文。 <!DOCTYPE html> <html> <head> <meta charset="GB2312"> <title>HTML5的标题</title> </head> <body> <p>HTML5的内容!Hello</p> </body> </html> 但是毕竟标准不一样。还是要用Utf-8。最后发现代码没有一点问题, 问题就出记事本身上 。 <meta charste="utf-8"> 只是告诉浏览器要用utf-8来解释,而文档的编码,是在你保存时的选择决定的。如果保存ANSI 然后用utf-8解释,肯定是乱码。 记事本的话,默认保存的文件格式是ANSI。所以在保存的时候要修改为uif-8。记事本编写的同鞋一定要注意了。 搞定~ 科普: UTF-8 GBK UTF8 GB2312 之间的区别和关系 UTF-8 GBK UTF8 GB2312 之间的区别 UTF-8:Unicode TransformationFormat-8bit

修改Linux下MySQL编码

巧了我就是萌 提交于 2019-12-28 00:10:00
默认登录mysql之后 可以通过SHOW VARIABLES语句查看系统变量及其值。   mysql> show variables like '%character%'; 说明:以下是在CentOS-6.2下的设置 (不同的版本可能有些差异,比如文件的位置。但设置的内容应该是一样的) 1. 找到mysql的配置文件,拷贝到etc目录下,第一步很重要   把/usr/share/doc/mysql-server-5.1.52/my-large.cnf 复制到 /etc/my.cnf   即用命令:cp /usr/share/doc/mysql-server-5.1.52/my-large.cnf /etc/my.cnf 2. 打开my.cnf修改编码   在[client]下增加default-character-set=utf8   在[mysqld]下增加default-character-set=utf8    同时加上init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行) 3.重新启动mysql   service mysqld restart   再次输入show variables like '%character%';   即使做了以上修改如果直接数据库再创建表,然后存入中文

mysql数据库字符编码修改

烂漫一生 提交于 2019-12-28 00:08:37
mysql数据库字符编码修改 修改数据库的字符集 mysql>use mydb mysql>alter database mydb character set utf8; 创建数据库指定数据库的字符集 mysql>create database mydb character set utf8; 通过MySQL命令行修改: mysql> set character_set_client=utf8; Query OK, 0 rows affected (0.00 sec) mysql> set character_set_connection=utf8; Query OK, 0 rows affected (0.00 sec) mysql> set character_set_database=utf8; Query OK, 0 rows affected (0.00 sec) mysql> set character_set_results=utf8; Query OK, 0 rows affected (0.00 sec) mysql> set character_set_server=utf8; Query OK, 0 rows affected (0.00 sec) mysql> set character_set_system=utf8; Query OK, 0 rows

linux下mysql修改字符集

纵饮孤独 提交于 2019-12-27 11:03:57
# 编辑/etc/my.cnf vim /etc/my.cnf # 在[mysqld]标签下添加下面内容 default-storage-engine = innodb innodb_file_per_table max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8 # 编辑/etc/my.cnf.d/client.cnf vim /etc/my.cnf.d/client.cnf # 在[client]标签下添加下面内容 default-character-set=utf8 # 编辑/etc/my.cnf.d/mysql-clients.cnf vim /etc/my.cnf.d/mysql-clients.cnf # 在[mysql]标签下添加下面内容 default-character-set=utf8 说明: 已建的库和表,编码不会改变。如果在已有库中继续建表,表依然会继承来自库的过去使用的编码 编码解释: character_set_client为客户端编码方式; character_set_connection为建立连接使用的编码;character_set_database数据库的编码; character_set_results结果集的编码;

vim编码问题

大憨熊 提交于 2019-12-27 07:16:10
当我们用vim或者gvim打开磁盘中的一个文件时,会发生什么事情呢?这得从四个变量说起。 这四个变量就是 fileencodings 、 fileencoding 、 encoding 和 termencoding 。 encoding Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。默认是根据你的locale选择.用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在.vimrc 中改变它的值才有意义。你可以用另外一种编码来编辑和保存文件,如你的vim的encoding为utf-8,所编辑的文件采用cp936编码,vim会 自动将读入的文件转成utf-8(vim的能读懂的方式),而当你写入文件时,又会自动转回成cp936(文件的保存编码). fileencoding 当 Vim 从磁盘上读取文件的时候,会对文件的编码进行探测。如果文件的编码方式和 Vim 的内部编码方式不同,Vim 就会对编码进行转换。转换完毕后,Vim 会将 fileencoding 选项设置为文件的编码。当 Vim 存盘的时候,如果 encoding 和 fileencoding 不一样,Vim 就会进行编码转换。因此,通过打开文件后设置 fileencoding ,我们可以将文件由一种编码转换为另一种编码。但是,由前面的介绍可以看出,