字符编码

Vim字符编码/中文乱码详解

不问归期 提交于 2019-12-27 07:11:37
注:本文部分内容是从网络上复制,并在基础上进行了改正。 在Vim中,有四个与编码相关的配置项,分别是encoding、fileencoding、fileencodings和termencoding。其含义分别如下: 1. encoding encoding是Vim内部使用的字符编码方式,当我们设置了 encoding 之后, Vim 内部所有的 buffer、 寄存器、 脚本中的字符串等, 全都使用这个编码。 Vim 在工作的时候, 如果编码方式与它的内部编码不一致, 它会先把编码转换成内部编码。 如果工作用的编码中含有无法转换为内部编码的字符, 在这些字符就会丢失。 因此,在选择 Vim 的内部编码的时候, 一定要使用一种表现能力足够强的编码, 以免影响正常工作。 由于 encoding 选项涉及到 Vim 中所有字符的内部表示, 因此只能在 Vim 启动的时候设置一次。 在 Vim 工作过程中修改 encoding 会造成非常多的问题。 如果没有特别的理由,请始终将 encoding 设置为 utf-8。 set encoding=utf-8 对于win环境下的GVim,为防止菜单上出现中文乱码,可以进行如下设置: source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim 2. fileencoding 当 Vim

Python基础第十天---对象持久化与字符串处理机制

风流意气都作罢 提交于 2019-12-27 03:32:33
文章目录 一、对象持久化 对象持久化必要性 使用格式化文本文件 1文本文件操作 内置函数eval,它可以将读到的字符串转换为Python的表达式,此时可以将他当作Python语句来运行了。 2使用常见的pickle进行对象持久化 序列化到字符串中,再反序列化为原来类型 序列化到二进制文件中,再反序列化为原来类型 3使用常见的shelve进行对象持久化 二、字符串的本质 字符串类型分类 三种类型的转换 bytes字节类型 bytearray字节数组类型,支持原位改变,类似列表类型 概述 三 、UTF-8、ASCII常用字符串编码 ASCII 0-127代码点之间 latin-1为拉丁1字符码 UTF-16 UTF-32 通用可变字长UTF-8,通用性好。 四、字符的编码与解码 编码 解码 字符串默认编码解码 文件读取的编码与解码 字符串BOM处理(字节顺序标记) 一、对象持久化 对象持久化必要性 概论:所有程序运行过程,就是使用我们编写的指令,来调度运算我们特定的数据或数据结构,但这个运算过程在内存里边;我们知道内存不是永久性存储,当我们断电,内存中的状态或数据就会丢失,当然在实际计算可能需要将当前需要计算的某个数据结果永久存储起来,就要用到对象的持久化。如:玩游戏过关时,这个状态是在内存中表现的,若想明天接着玩,我们可以把当前进度保存一下

python学习——开启python

三世轮回 提交于 2019-12-26 22:33:59
一、Hello World程序 在windows下F盘创建一个文件叫hello.py并输出 1 F:\\python hello.py 然后再windows命令执行 1 print ( " Hello World! " ) 二、变量、字符编码 声明变量 name="binbin" 上述代码声明了一个变量,变量名为:name,变量的值为:"binbin" 变量定义的规则: 变量名只能是字母、数字或下划线的任意组合 变量名的不能以数字开头 以下关键字不能声明变名量[and,as,assert,break,class,continue,def,del,elif,else,except,exec,finally,for,from,global,if,import,in,is,lambda,not,or,pass,print,raise,return,try,while,with,yield] 变量的赋值 name="hinbin" name2=name print(name,name2) name="huanxue" print(name,name2) 上述变量第一个输出的为两个binbin,第二个输出的是huanxue binbin,name把地址给name2所以name赋值为binbin,后面name自己指向huanxue所以自己的值改为huanxue这时候name2的值没变

Java中编码问题

丶灬走出姿态 提交于 2019-12-26 08:07:57
在开发过程中经常会遇到一会乱码问题,不是什么大问题,但是也挺烦人的,今天来将我们开发总结的经验记录下来,希望可以给大家一些帮助。 一些概念: 字符:人们使用的记号,抽象意义上的一个符号。比如:‘1’,‘中’,‘a’ 字节:计算机中存储数据的单元,一个8位的二进制数,是一个很具体的存储空间 字符集:使用哪些字符。也就是说哪些汉字,字母和符号会被收入标准中。所包含“字符”的集合就叫做“字符集”。 编码:规定每个“字符”分别用一个字节还是多个字节存储,用哪些字节来存储,这个规定就叫做“编码” 平常我们所说的“字符集”,比如:GB2312, GBK, JIS 等,除了有“字符的集合”这层含义外,同时也包含了“编码”的含义。 各种编码: ASCII 码   因为计算机只认识数字,所以我们在计算机里面的一切数据都是以数字来表示,因为英文字符有限,所以规定使用的字节的最高位是 0,每一个字节都是以 0-127 之间的数字来表示。比如 A 对应 65,a 对应 97。这便是 美国标准信息交换码,ASCII码 GB2312 码   随着计算机在全球的普及,很多国家和地区都把自己的字符引入了计算机,比如汉字。此时发现一个字节能表示的数字范围太小,不能包含所有的中文汉字。那么就规定使用两个字节来表示一个汉字。   规定:原有的 ASCII 字符的编码保持不变,仍然使用一个字节表示

Unicode、UTF8、UTF16

末鹿安然 提交于 2019-12-26 07:05:13
推荐一篇 文章 ,此博客是阅读这篇文章后自己的一些总结与理解 Unicode Unicode是一种标准,他收集了世界上所有的字符,并为每个字符分配了一个唯一的码点 现在来看看Unicode字符集是长什么样子,由于全球所有的字符太多太多,按照字符的类型使用频率把字符分了17个平面,如图,每个平面的码点唯一对应一个字符(当然也有还没用到的,因为实际上字符并没有那么多),像平面0上的码点就放着最常用的字符 拿平面0举例,我们常用的字符 A 就在平面0上,A对应的字符编码是0041,即图中平面0的0000-0FFF中的0041, 这个0041就是码点 这个0000-10FFFF就是码点空间 0000-10FFFF与全球字符的对应关系就是编码字符集 专业术语概念 Coded Character Set(CCS):编码字符集,将全球的字符收集起来每个分配唯一的字符编号,Unicode字符集就是一种编码字符集 Character Encoding Form(CEF):将ccs中的字符编号按照某种规则转化成二进制序列,UTF8、UTF16就是一种字符编码表 Code Point:码点,即ccs中的字符编号 Code Unit:代码单元,已编码的文本中具有最短bit位的单元,UTF8是8bit长,UTF16是16bit长(至于UTF8为什么是8bit,UTF16为什么是16bit,后面还会介绍)

Python学习笔记(四)字符串型

☆樱花仙子☆ 提交于 2019-12-26 01:19:32
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。 在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言。 创建字符串很简单,只要为变量分配一个值即可 View Code 对于单个字符的编码,Python提供了 ord() 函数获取字符的整数表示, chr() 函数把编码转换为对应的字符 View Code 如果知道字符的整数编码,还可以用十六进制这么写 str : 1 >>> '\u4e2d\u6587' 2 '中文' 由于Python的字符串类型是 str ,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把 str 变为以字节为单位的 bytes 。 Python对 bytes 类型的数据用带 b 前缀的单引号或双引号表示 1 >>> x = b'ABC' 2 3 >>> type(x) 4 <class 'bytes'> 注意区分 'ABC' 和 b'ABC' ,前者是 str ,后者虽然内容显示得和前者一样,但 bytes 的每个字符都只占用一个字节。 以Unicode表示的 str 通过 encode() 方法可以编码为指定的 bytes ,例如: 1 >>> 'ABC'.encode('ascii') 2 b'ABC' 3 4 >>>

JavaScript 字符串处理详解

走远了吗. 提交于 2019-12-24 10:40:16
一、创建字符串 创建一个字符串,将一组字符串用引号包起来,将其赋值给一个字符串变量。 var JsStr="Hello,JavaScript String!"; 二、字符串查找方法 1.字符方法charAt(),charCodeAt(),fromCharCode() (1)charAt()函数 功能:返回字符串中指定位置的字符; 语法:String.charAt(n); 参数:n--字符在字符串中的位置(字符串第一个字符的位置为0); 返回值:返回n位置的字符,如果n不在0到(string.length-1)之间,将返回空字符串。 示例: (2)charCodeAt()函数 功能:返回指定位置的字符的Unicode编码; 语法:String.charCodeAt(n); 参数:n--字符在字符串中的位置(字符串第一个字符的位置为0); 返回值:返回n位置的Unicode编码(此编码为16位,在0-65536之间),如果n不在0到(string.length-1)之间,将返回NaN。 示例: (3)fromCharCode()函数 功能:接受指定的Unicode值,然后返回一个字符串; 语法:String.fromCharCode(numX,numX...); 参数:numX--必须值,一个或多个Unicode值,通过fromCharCode函数得到Unicode值得字符串; 返回值

连接不同字符集编码Oracle问题处理过程

丶灬走出姿态 提交于 2019-12-23 20:14:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 近日某项目中碰到接口方Oracle字符集编码为US7ASCII,而我们自身Oracle字符集是ZHS16GBK. 此时我们的服务端连接接口取回来的数据显示为乱码. 接口方是不愿意修改Oracle字符集的. 我们使用的是ATL的Ole DB方式,另外使用的是Oralce Provider for OLE DB驱动. 以上为背景. Oracle字符编码涉及到Oracle客户端的字符编码有关 Oracle客户端编码与Oracle服务端编码一致时不会进行编码转换( Features of OraOLEDB ) 做了如下尝试: 0.修改连接串属性,增加 Auto Translate=False属性 ,无效 ( 因为原来有碰到过SQL Server乱码问题, 修改数据库连接串即可. Provider=SQLOLEDB.1;Password="xxx";Persist Security Info=True;User ID=xxx;Initial Catalog=xxx;Data Source=xxx; Auto Translate=False 参看链接如下: Character data is represented incorrectly when the code page of the client computer

Python中文全攻略

非 Y 不嫁゛ 提交于 2019-12-23 17:45:04
原文链接: http://blog.csdn.net/mayflowers/archive/2007/04/18/1568852.aspx 1. 在Python中使用中文 在Python中有两种默认的字符串:str和unicode。在Python中一定要注意区分“Unicode字符串”和“unicode对象”的区别。后面所有的“unicode字符串”指的都是python里的“unicode对象”。 事实上在Python中并没有“Unicode字符串”这样的东西,只有“unicode”对象。一个传统意义上的unicode字符串完全可以用 str 对象 表示。只是这时候它仅仅是一个字节流,除非解码为unicode对象,没有任何实际的意义。 我们用“哈哈”在多个平台上测试,其中“哈”对应的不同编码是: 1. UNICODE (UTF8-16), C854; 2. UTF-8, E59388; 3. GBK, B9FE。 1.1 Windows控制台 下面是在windows控制台的运行结果: 可以看出在控制台,中文字符的编码是GBK而不是UTF-16。将字符串s(GBK编码)使用decode进行解码后,可以得到同等的unicode对象。 注意:可以在控制台打印ss并不代表它可以直接被序列化,比如: 向文件直接输出ss会抛出同样的异常。在处理unicode中文字符串的时候

字符集

放肆的年华 提交于 2019-12-23 13:00:25
字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。中文文字数目大,而且还分为简体中文和繁体中文两种不同书写规则的文字,而计算机最初是按英语单字节字符设计的,因此,对中文字符进行编码,是中文信息交流的技术基础。 ASCII 字符集 1.名称的由来   ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于罗马字母表的一套电脑编码系统。 2.特点   它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO 646。 3.包含内容   控制字符:回车键、退格、换行键等。   可显示字符:英文大小写字符、阿拉伯数字和西文符号 4.技术特征   7位(bits)表示一个字符,共128字符 5.ASCII扩展字符集   7位编码的字符集只能支持128个字符,为了表示更多的欧洲常用字符对ASCII进行了扩展