精华内容
下载资源
问答
  • Python字符串中的%是什么意思

    千次阅读 2017-10-28 17:44:25
    简单的说就是一种将其他变量置入到特定的位置,生成新字符串的操作print里面有一个%s,就是‘这里讲替换成一个新的字符串’,用作替换的内容放在字符串后面的%后面就是变量n除了%s,还有%d,只是代表的替换类型是不...

    % 字符串格式化的
    简单的说就是一种将其他变量置入到特定的位置,生成新字符串的操作


    print里面有一个%s,就是‘这里讲替换成一个新的字符串’,用作替换的内容放在字符串后面的%后面就是变量n

    age = '22'
    
    //my name is 22
    print 'my name is %s' % n  
    

    除了%s,还有%d,只是代表的替换类型是不一样的

    //第二个百分号要是string就会输出错误,因为第一个百分号跟的是d,需要第二个百分号后面跟的是整数型
    print '%dkm'%1998
    
    //下面是多个值
    print '%s %d %f'%('jack',29,9.2)
    
    展开全文
  • 什么是转义字符 定义: 转义字符是很多程序语言、数据格式和通信协议的形式文法的一部分。对于一个给定的字母表,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独...

    什么是转义字符

    • 定义:
      转义字符是很多程序语言、数据格式和通信协议的形式文法的一部分。对于一个给定的字母表,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现(没有转义字符开头)时的语义。因此转义字符开头的字符序列被叫做转义序列。一个转义字符可能并没有它自己的意思,因此所有转义序列具有2个或更多字符。
      简单来说就是在一些字符前加 “\” 使它具有其他意义

    • 作用
      一、是将一些有特殊含义字符,标识为普通字符,函数解析字符串时看到转义字符,就不再对其做特殊处理,而是当做普通字符打印。
      例如引号 " 引号本身用于引用一段字符串,当函数看到引号,就知道跟在后面的是字符串,引号本身是不会直接打印出来的。那如果需要打印出引号来,就需要告诉函数,这个引号不要当做引用的特殊字符处理,当做普通字符打印就好,这里就需要一种通知的方式,反斜线字符就是起到一个标识符的作用。
      二、用于表示一些特殊的控制符,比如回车 \n, 换行 \r,退格\b,换页\f 等等转义字符结合普通的字母,用于表示特殊的控制意义,一般用于格式控制。

    • 常见的转义字符使用情况

    样式 含义
    \123 1~3位八进制数据所表示的字符,如\256
    \uF890 4位十六进制数据所表示的字符,如\u0014
    单引号字符
    \ 反斜杠字符
    \t 水平制表符
    \v 垂直制表符
    \r 回车
    \n 换行符
    \b 退格
    \f 换页
    \a 响铃

    注意:在不同的编程语言中,转义字符的使用方法不尽相同。
    例如:Java中就没有\v垂直制表符

    展开全文
  • 什么是字符集?

    千次阅读 多人点赞 2019-04-29 07:30:00
    这是杂货铺的第468篇文章无论是数据库,还是应用服务器,有时会碰见字符集的问题,就有些懵圈。看见CSDN转载了程序员乔戈里的一篇文章,用漫画的形式,讲解了各种字符集的知识...
        

    这是杂货铺的第468篇文章


    无论是数据库,还是应用服务器,有时会碰见字符集的问题,就有些懵圈。看见CSDN转载了程序员乔戈里的一篇文章,用漫画的形式,讲解了各种字符集的知识,通俗易懂。


    原文链接:

    漫画:什么是字符集和编码?ASCII、UTF-8、UTF-16、UTF-32 又是什漫画:什么是字符集和编码?ASCII、UTF-8、UTF-16、UTF-32又是什么?


    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    当天下午

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    ————————

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    在计算机底层,比如说你的名字“小萌”在计算机中并不是文字的形式,而是一串二进制数字,如“011001100110…”

    人类只认识文字,可惜计算机只认0和1,双方都不能妥协,那就必须要有一个从文字到0、1的映射了。

    从我们可以看到的文字到0、1的映射称为编码,反过来从0、1到文字叫解码。这个就是编码的含义。

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    Unicode编码定义了这个世界上几乎所有字符(就是你眼睛看的字符,比如ABC、汉字等)的数字表示,而且Unicode还兼容了很多老版本的编码规范,例如刚刚讲过的ASCII码。

    我们国家的每一个人都对应唯一的一个身份证号,而Unicode也为每个字符发了一张身份证,这张“身份证”上有一串唯一的数字ID确定了这个字符。

    这串数字在整个计算机的世界具有唯一性,Unicode给这串数字ID起了个名字叫[码点]。

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    这个“Unicode转换格式”是为了解决“码点”在计算机存储方式而设计的。

    “码点”经过映射后得到的二进制串的转换格式单位称之为“码元”(Code Unit)。“码点”就是一串二进制数,“码元”就是切分这个二进制数的方法。

    举个例子,如果有一个字符的码点二进制表示有n字节(n*8个二进制数),其码元为8位(1个字节),那么其拥有码元n个。

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    Unicode编码发展到今天扩展到了21位,为啥扩展到21位了呢?因为一开始老美只考虑自己那26个英文字母和数字,随着越来越多的国家的语言语言编码,Unicode不得继续扩展,目前21位已经足够使用。

    UTF-32是最好理解的一个了。UTF-32也就是说它的码元是32位,每32位去读一下码点,而码点是Unicode给字符的编码,前面也说了,最长才21位,因此每一个UTF-32值都可以直接表示对应的码点。

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    什么是编码空间呢?前面说了Unicode,它是21位的。这21位提供了1,114,112个码点,编码空间就是对应这1,114,112个码点。

    对了这里要说一下,这么多码点并不代表有这么多字符,目前大概只有10%的空间被使用了,人类社会还没创造出1,114,112这么多的字符。

    编码空间被分成 17 个平面(plane),每个平面有65,536个字符(正好填充2个字节,16位)。0号平面叫做“基本多文种平面”(BMP, Basic Multilingual Plane),涵盖了几乎所有你能遇到的字符,除了 emoji(emoji位于1号平面--。其它平面叫做补充平面,大多是空的。

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    UTF-16要常见得多,它的码元是16位的,也就是说每16位去读一下码点,获取码点的前16位数字,直到读取完成。

    编码空间这里要用上了哈,BMP平面(也就是前面说的基本多文种平面)中的每一个码点都直接与一个UTF-16的码元一一映射。

    由于BMP几乎包括了所有常见字符,UTF-16一般需要UTF-32大约一半的空间。至于其它平面里很少使用的码点都是用两个16位的码元来编码的。

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    UTF-8使用一到四个字节来编码一个码点。从0到127的这些码点直接映射成1个字节(对于只包含这个范围字符的文本来说,这一点使得UTF-8和ASCII完全相同)。接下来的1,920个码点映射成2个字节,在BMP里所有剩下的码点需要3个字节。Unicode的其他平面里的码点则需要4个字节。UTF-8是基于8位的码元的,因此它并不需要关心字节顺序(因为字节就是8位的呀,其它UTF-16和UTF-32在不同的机器编译环境下需要考虑字节的顺序问题)。

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    展开全文
  • 字符编码的概念(UTF-8、UTF-16、UTF-32都是什么鬼)

    万次阅读 多人点赞 2017-11-30 17:11:56
    字符集为每个字符分配了一个唯一的编号,通过这个编号就能找到对应的字符。在编程过程中我们经常会使用字符,而使用字符的前提就是把字符放入内存中,毫无疑问,放入内存中的仅仅是字符的编号,而不是真正的字符实体...

    字符集为每个字符分配了一个唯一的编号,通过这个编号就能找到对应的字符。在编程过程中我们经常会使用字符,而使用字符的前提就是把字符放入内存中,毫无疑问,放入内存中的仅仅是字符的编号,而不是真正的字符实体。

     

    这就抛出了一个问题,如何才能将字符编号放入内存中呢?

     

    对于 ASCII 字符集,这很容易。ASCII 总共包含 128 个字符,用 7 个比特位(Bit)恰好能够存储,不过考虑到计算机一般把字节(Byte)作为基本单元,为了操作方便,我们不妨用一个字节(也就是 8 个比特位)来存储 ASCII。这样虽然浪费了一个比特位,但是读写效率提高了。

     

    但是对于 Unicode,问题就没有这么简单了。Unicode 目前已经包含了上百万的字符,位置靠前的字符用一个字节就能存储,位置靠后的字符用三个字节才能存储。我们可以为所有字符都分配三个字节的内存,也可以为编号小的字符分配一个字节或者两个字节的内存,而为编号大的字符分配三个字节的内存。

     

    这两种方案各有优缺点,请读者看下面的分析。

    字符集和字符编码不是一个概念,字符集定义了文字和二进制的对应关系,为字符分配了唯一的编号,而字符编码规定了如何将文字的编号存储到内存中。有的字符集在制定时就考虑到了编码的问题,是和编码结合在一起的;有的字符集只管制定字符的编号,至于怎么编码,是其他人的事情。

    方案1:为每个字符分配固定长度的内存

    一种方案是为每个字符分配固定长度的内存,并且这块内存要足够大,可以容纳下所有的字符编号。这种方案最简单,直接将字符编号放入内存中即可,不需要任何转换,并且以后在字符串中定位字符、修改字符都非常容易。

    字符串就是一串连续的字符序列,它们在内存中按次序挨着存放。在C语言中,字符串由双引号" "包围起来。

    目前的 Unicode 已经收录了上百万的字符,至少需要三个字节才能容纳下所有的字符编号。假设字符串"A3中¥"的 Unicode 编码值(十六进制形式)分别是 2A、31、DA49、BB672C,那么它们在内存中的存储形式为:

     

    在几乎所有的字符集中,常用字符的编号往往比较小,罕见字符的编号往往比较大,包括 Unicode 在内。

     

    A和3是 ASCII 编码中的字符,Unicode 为了兼容 ASCII,在设计时刻意保留了原来 ASCII 中字符的编号,所以英文字母和阿拉伯数字在 Unicode 中的编号都非常小,用一个字节足以容纳。中是一个汉字,编号比较大,一般要用两个字节才能容纳。¥可以看做是一个极其少见,或者只有极少数地区才会使用到的字符,这样的字符编号往往比较大,有时候需要三个字节才能容纳。

    是人民币符号,是汉字文化的一部分,它和其它汉字一样,实际上是用两个字节存储的,不过这里我们为了演示,故意犯错地说它需要三个字节。

    上图中带灰色背景的字节是没有用到的字节,它们就是被浪费掉的一部分内存空间,这就是用固定长度的内存来存储字符编号的缺点:常用字符的编号都比较小,这种方案会浪费很多内存空间,对于以英文为主的国家,比如美国、加拿大、英国等,内存利用率甚至会低于 50%。

    方案2:为每个字符分配尽量少的内存

    既然上面的方案有缺点,那我们就来改进一下。改进的思路也很明确,就是把空闲的内存压缩掉,为每个字符分配尽量少的字节,例如,A和3分配一个字节足以,中分配两个字节足以,如下图所示:

    这样虽然没有了空闲字节,不浪费任何内存空间了,但是又出现新的问题了:如果我不告诉你,你怎么知道2A表示一个字符,而不是2A31或者2A31DA才表示一个字符呢?后面的字符也有类似的问题。

     

    对于第一种方案,每个字符占用的字节数是固定的,很容易区分各个字符;而这种方案,不同的字符占用的字节数不同,字符之间也没有特殊的标记,计算机是无法定位字符的。

     

    这种方案还需要改进,必须让不同的字符编码有不同的特征,并且字符处理程序也需要调整,要根据这些特征去识别不同的字符。

     

    要想让不同的字符编码有不同的特征,可以从两个方面下手:

    1) 一是从字符集本身下手,在设计字符集时,刻意让不同的字符编号有不同的特征。

     

    例如,对于编号较小的、用一个字节足以容纳的字符,我们就可以规定这个字符编号的最高位(Bit)必须是 0;对于编号较大的、要用两个字节存储的字符,我们就可以规定这个字符编号的高字节的最高位必须是 1,低字节的最高位必须是 0;对于编号更大的、需要三个字节存储的字符,我们就可以规定这个字符编号的所有字节的最高位都必须是 1。

     

    程序在定位字符时,从前往后依次扫描,如果发现当前字节的最高位是 0,那么就把这一个字节作为一个字符编号。如果发现当前字节的最高位是 1,那么就继续往后扫描,如果后续字节的最高位是 0,那么就把这两个字节作为一个字符编号;如果后续字节的最高位是 1,那么就把挨着的三个字节作为一个字符编号。

     

    这种方案的缺点很明显,它会导致字符集不连续,中间留出大量空白区域,这些空白区域不能定义任何字符。

     

    2) 二是从字符编号下手,可以设计一种转换方案,字符编号在存储之前先转换为有特征的、容易定位的编号,读取时再按照相反的过程转换成字符本来的编号。

     

    那么,转换后的编号要具备什么样的特征呢?其实也可以像上面一样,根据字节的最高位是 0 还是 1 来判断字符到底占用了几个字节。

     

    相比第一种方案,这种方案有缺点也有优点:

     

    • 缺点就是多了转换过程,字符在存储和读取时要经过转换,效率低;
    • 优点就是在制定字符集时不用考虑存储的问题,可以任意排布字符。

     

    Unicode 到底使用哪种编码方案

    Unicode 是一个独立的字符集,它并不是和编码绑定的,你可以采用第一种方案,为每个字符分配固定长度的内存,也可以采用第二种方案,为每个字符分配尽量少的内存。

     

    需要注意的是,Unicode 只是一个字符集,在制定的时候并没有考虑编码的问题,所以采用第二种方案时,就不能从字符集本身下手了,只能从字符编号下手,这样在存储和读取时都要进行适当的转换。

     

    Unicode 可以使用的编码有三种,分别是:

    • UFT-8:一种变长的编码方案,使用 1~6 个字节来存储;
    • UFT-32:一种固定长度的编码方案,不管字符编号大小,始终使用 4 个字节来存储;
    • UTF-16:介于 UTF-8 和 UTF-32 之间,使用 2 个或者 4 个字节来存储,长度既固定又可变。

     

    UTF 是 Unicode Transformation Format 的缩写,意思是“Unicode转换格式”,后面的数字表明至少使用多少个比特位(Bit)来存储字符。

    1) UTF-8

    UTF-8 的编码规则很简单:如果只有一个字节,那么最高的比特位为 0;如果有多个字节,那么第一个字节从最高位开始,连续有几个比特位的值为 1,就使用几个字节编码,剩下的字节均以 10 开头。

     

    具体的表现形式为:

    • 0xxxxxxx:单字节编码形式,这和 ASCII 编码完全一样,因此 UTF-8 是兼容 ASCII 的;
    • 110xxxxx 10xxxxxx:双字节编码形式;
    • 1110xxxx 10xxxxxx 10xxxxxx:三字节编码形式;
    • 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx:四字节编码形式。

     

    xxx 就用来存储 Unicode 中的字符编号。

     

    下面是一些字符的编码实例(绿色部分表示本来的 Unicode 编号):

     

    字符 N æ
    Unicode 编号(二进制) 01001110 11100110 00101110 11101100
    Unicode 编号(十六进制) 4E E6 2E EC
    UTF-8 编码(二进制) 01001110 11000011 10100110 11100010 10111011 10101100
    UTF-8 编码(十六进制) 4E C3 A6 E2 BB AC

    对于常用的字符,它的 Unicode 编号范围是 0 ~ FFFF,用 1~3 个字节足以存储,只有及其罕见,或者只有少数地区使用的字符才需要 4~6个字节存储。

    2) UTF-32

    UTF-32 是固定长度的编码,始终占用 4 个字节,足以容纳所有的 Unicode 字符,所以直接存储 Unicode 编号即可,不需要任何编码转换。浪费了空间,提高了效率。

    3) UTF-16

    UFT-16 比较奇葩,它使用 2 个或者 4 个字节来存储。

     

    对于 Unicode 编号范围在 0 ~ FFFF 之间的字符,UTF-16 使用两个字节存储,并且直接存储 Unicode 编号,不用进行编码转换,这跟 UTF-32 非常类似。

     

    对于 Unicode 编号范围在 10000~10FFFF 之间的字符,UTF-16 使用四个字节存储,具体来说就是:将字符编号的所有比特位分成两部分,较高的一些比特位用一个值介于 D800~DBFF 之间的双字节存储,较低的一些比特位(剩下的比特位)用一个值介于 DC00~DFFF 之间的双字节存储。

     

    如果你不理解什么意思,请看下面的表格:

     

    Unicode 编号范围
    (十六进制)
    具体的 Unicode 编号
    (二进制)
    UTF-16 编码 编码后的
    字节数
    0000 0000 ~ 0000 FFFF xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 2
    0001 0000---0010 FFFF yyyy yyyy yyxx xxxx xxxx 110110yy yyyyyyyy 110111xx xxxxxxxx 4

     

    位于 D800~0xDFFF 之间的 Unicode 编码是特别为四字节的 UTF-16 编码预留的,所以不应该在这个范围内指定任何字符。如果你真的去查看 Unicode 字符集,会发现这个区间内确实没有收录任何字符。

     

     

    UTF-16 要求在制定 Unicode 字符集时必须考虑到编码问题,所以真正的 Unicode 字符集也不是随意编排字符的。

    总结

    只有 UTF-8 兼容 ASCII,UTF-32 和 UTF-16 都不兼容 ASCII,因为它们没有单字节编码。

     

    如果你希望查看完整的 Unicode 字符集,以及各种编码方式,请猛击:https://unicode-table.com/cn/

    虽然这个网站有时候无法访问,但它是最好的一个查看 Unicode 字符集的网站。

    GB2312、Shift-JIS 等国家(地区)字符集怎么编码

    GB2312、GBK、Shift-JIS 等特定国家的字符集都是在 ASCII 的基础上发展起来的,它们都兼容 ASCII,所以只能采用变长的编码方案:用一个字节存储 ASCII 字符,用多个字节存储本国字符。

     

    以 GB2312 为例,该字符集收录的字符较少,所以使用 1~2 个字节编码。

    • 对于 ASCII 字符,使用一个字节存储,并且该字节的最高位是 0;
    • 对于中国的字符,使用两个字节存储,并且规定每个字节的最高位都是 1。

     

     

    由于单字节和双字节的最高位不一样,所以很容易区分一个字符到底用了几个字节。

    宽字符和窄字符(多字节字符)

    有的编码方式采用 1~n 个字节存储,是变长的,例如 UTF-8、GB2312、GBK 等;如果一个字符使用了这种编码方式,我们就将它称为多字节字符,或者窄字符。

     

    有的编码方式是固定长度的,不管字符编号大小,始终采用 n 个字节存储,例如 UTF-32、UTF-16 等;如果一个字符使用了这种编码方式,我们就将它称为宽字符。

     

    Unicode 字符集可以使用窄字符的方式存储,也可以使用宽字符的方式存储;GB2312、GBK、Shift-JIS 等国家编码一般都使用窄字符的方式存储;ASCII 只有一个字节,无所谓窄字符和宽字符。

    展开全文
  • Unicode字符什么

    千次阅读 2007-01-11 11:24:00
    Unicode 是一种重要的交互和显示的通用字符编码标准,它覆盖了美国、欧洲、中东、非洲、印度、亚洲和太平洋的语言,以及古文和专业符号。Unicode 允许交换、处理和显示多语言文本以及公用的专业和数学符号。它希望...
  • 什么是块设备,什么是字符设备?有什么区别? 系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-...
  • 序列是一种非常常见的可迭代类型,列表,元组和字符串都是序列。 >>> numbers = [1, 2, 3, 5, 7] >>> coordinates = (4, 5, 7) >>> words = "hello there" 序列是可迭代的,它有一些...
  • 什么是字符码,什么是字符集? 为什么要有 Unicode ?UTF-8 和 GBK 又有什么不同呢? 三歪坐在我的腿上对我撒娇似的说出这一连串的问题,我这个人宠粉但是更宠女朋友,所以就有了这篇文章。 为什么会出现乱码 我们...
  • Java字符串常量池是什么?为什么要有这种常量池? 简单介绍 Java中的字符串常量池(String Pool)是存储在Java堆内存中的字符串池。我们知道String是java中比较特殊的类,我们可以使用new运算符创建...
  • 什么是格式化字符串攻击?

    千次阅读 2014-10-28 17:23:34
    格式化字符串漏洞同其他许多安全漏洞一样是由于程序员的懒惰造成的。当你正在阅读本文的时候,也许有个程序员正在编写代码,他的任务是:打印输出一个字符串或者把这个串拷贝到某缓冲区内。他可以写出如下的代码: ...
  • ——以字符’\0’结尾的char数组就是一个字符串,但如果char数组没有以’\0’结尾,那么就不是一个字符串,只是普通字符数组,所以字符串是一种特殊的char数组。 两者的区别: 字符串: 1、字符串赋初值用双引号引...
  • 在Java中我们需要判断字符串string 是否为合法输入或者是否为中文,Java中对字符字符串是否为中文的判断调用了Character.UnicodeBlock。在Java中的中文包括:中文汉字、中文输入法下的标点、符号(半角、全角形式...
  • PTA-判断输入的字符是哪种类型

    千次阅读 2019-04-01 17:46:09
    通过键盘输入一个字符,编程判断并输出用户输入的是什么类型的字符。 输入格式: 输入一个字符。 输出格式: 在一行中输出该字符是哪种类型的字符。 若用户输入字符为'0'和'9'之间,输出This is a digit. 若用户...
  • C#中的字符字符

    千次阅读 2019-07-16 16:41:29
    Char Char在C#中表示一个Unicode字符,正是这些Unicode字符构成了字符串。Unicode字符是目前计算机通用的字符编码,它为针对不同的语言的每个字符设定了统一的二进制编码,用于...【To开头的方法主要是转换为其他...
  • Java为什么选择unicode字符集?字符编码的那些事
  • 若是UTF-8或其他编码,可以查询相对应的编码表,参考本文思路进行编程。 判断中文字符 首先,我们要知道输入一个中文字符,如果是GBK编码,那么要用两字节进行存储,如果拿string进行存储,那么字符串长度其实为2...
  • C语言中,为什么字符串可以赋值给字符指针变量

    千次阅读 多人点赞 2019-09-27 18:25:08
    C语言中,为什么字符串可以赋值给字符指针变量 char *p,a='5';p=&a; //显然是正确的,p="abcd"; //但为什么也可以这样赋值??问:一直理解不了为什么可以将字串常量赋值给字符指针变量,请各位指点! 答...
  • 拨开字符编码的迷雾--字符编码转换

    万次阅读 2017-11-27 21:22:09
    1. Windows API介绍本文介绍使用Windows ...API接口名中的MultiByte对应着多字节编码,如ASCII、UTF-8等都是多字节编码,而WideChar字面意思是宽字符,在windows内部宽字符特指UTF-16编码。 原型如下:int WideCharTo
  • 当你正在学习如何完全使用 Linux shell 时,你可以能会觉得自己能够对字符串进行操作。 记住,今天q&...超级用户 Nissim Kaufmann想知道在 Linux shell 字符串中的百分比符号是什么: 在使用 Li...
  • 做成员变量(字段/属性/类变量)时,如果只写String str;那么是默认赋值为null的。做局部变量(方法里的变量)时,如果只写String str;...null的话,你屏幕输出(toString方法)的结果为字符串nul...
  • Python字符串总结大全

    万次阅读 多人点赞 2021-05-03 21:42:59
    普通字符串转化为Unicode字符串 重复操作符(*) 只适用于字符串的操作符 格式化操作符(%) 字符串模板:更简单的替代品 原始字符串操作符(r/R) Unicode字符串操作符(u/U) 常见的转义字符 字符串索引 编解码 ...
  • 空格字符VS空字符

    千次阅读 2013-04-23 09:37:50
    最近项目中需要资金对账,对账文件由定长域...空字符一般来描述一个字符串的结尾,其实是控制符的一种,但不能理解为没有字符,应该理解为代表什么都没有的字符.好比回车0x0A和换行0x0D虽然不显示,但是也是控制字符的一
  • python 字符

    万次阅读 2018-11-09 16:03:18
    Python3 字符字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。例如: var1 = 'Hello World!' var2 = "Runoob" ...
  • 转义字符

    千次阅读 2017-10-26 19:22:13
    有一个字符串”\\\”A100\”\\”,用strlen计算的结果是多少?...8进制的处理是获取斜杠\后面的3位整数,其他的原样输出。 16进制的处理是截取斜杠\x后的整数的最后2位最处理,前面的位数不管(这叫截断)。
  • 如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何迅速匹配兄弟字符串?...全部都有则是兄弟字符串,其他则不是兄弟字符串。 时间复杂度N*N/2 ,平方级。 额,这算法真的就正确么?
  • 浅谈char字符类型和string字符串类型

    万次阅读 多人点赞 2018-01-26 20:58:49
    char也就是字符型数据定义,string也就是字符串类型数据定义,乍一看他们很想,一个是字符一个是字符串,字符串不就是字符串起来得到的吗?但是事实上,字符串即是“字符”串起来也不是“字符”串起来,听起来是不是...
  • 字符串学习1——字符串为什么减‘0’成整数

    千次阅读 多人点赞 2018-09-05 18:13:39
    所以其它字符要转换成数字都可以用减‘0’来表示。比如‘2’的ASCII是50,而我们要得到数字2,于是用‘2’-48=2了。看来当我们知道数据在计算机中的存储规则的时候,问题就迎刃而解了。 总之一句话:因为ASCII...
  • 什么R.string.ID 返回的是一串数字,而不是字符串?在setText()方法中经常会用到R.string.ID来显示字符串,直接将R.string.ID传入setText()方法中显示字符串,如:textview.setText(R.string.show);可是当我们在R....
  • 详解 Python 字符串(一):字符串基础

    千次阅读 多人点赞 2021-01-16 20:59:45
    在 Python 中,字符串就是一串字符的组合,它是不可变的、有限字符序列,包括可见字符、不可见字符(如空格符等)和转义字符。Python 通过 str 类型提供大量方法来操作字符串,如字符串的替换、删除、截取、复制、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 413,372
精华内容 165,348
关键字:

其他字符是什么意思