精华内容
下载资源
问答
  • 主要介绍了Java语言中一个字符几个字节,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 一个字符常量占几个字节

    千次阅读 2020-09-24 16:30:18
    网上一大堆说的不清不楚,总而言之问你的是一个字符常量占几个字节 回答:      字符型常量是由一对单引号括起来的单个字符。它分为一般字符常量和转义字符一个字符常量在计算机的存储中占据...

    网上一大堆说的不清不楚,总而言之问你的是一个字符常量占几个字节

    回答:
         字符型常量是由一对单引号括起来的单个字符。它分为一般字符常量和转义字符。一个字符常量在计算机的存储中占据一个字节

    (1)一般字符常量:是用单引号括起来的一个普通字符,其值为该字符的ASCII码值。如’a’的值为97

    (2)转义字符:…

    展开全文
  • C语言中一个字符是一个字节,一个中文字符几个字节?为什么?</p>
  • 一个汉字一个字符!不信你去java输入char ch = '汉’看看报不报错 ...英文、中文都是数据,一个汉字一个字母都是一个字符,但计算机读取时会转化为字节,一般情况下英文字母占一个字节使用ISO-8859-1

    一个汉字一个字符!不信你去java输入char ch = '汉’看看报不报错

    学习java也有段时间了,一直都是毛里毛糙的学习,但都是停留在略懂阶段,似乎会,实际上差得远了,,还是要沉下来心一点一点学呀,慢慢积累,不怕慢,对一个知识点彻底明白了会感觉收获颇多,走马观花地学总感觉空落落的。

    先说编码

    计算机存放数据只能存放数字(几进制的那种),所有的字符都会被转换为不同的数字。
    英文、中文都是数据,一个汉字一个字母都是一个字符,但计算机读取时会转化为字节,一般情况下英文字母占一个字节,使用ISO-8859-1编码就可以了,而汉字占用字节数多于1,此时使用ISO-8859-1编码就会乱码,因为放不下,支持汉字编码的是GBK,而UNICODE编码格式可以编码所有类型的语言。
    在这里插入图片描述

    1:ISO-8859-1支持 ASCII 编码的所有字符(数字、西欧字母及键盘上的各种符号 )
    2:GBK GB2312 BIG5 中文
    3:UNICODE (统一码,万国码)
    其中
    1:ISO-8859-1 包含 ASCII
    2:GB2312 是简体中文,BIG5是繁体中文,GBK同时包含简体和繁体以及日文。
    3:UNICODE包括了所有的文字,无论中文,英文,藏文,法文,世界所有的文字都包含其中。UNICODE根据不同标准也会进行细分,UCS-2标准每个数字占2个字节内存,受制于2字节数量的限制,UCS-2只能表示最多65536个字符。Unicode的4字节形式被称为UCS-4或UTF-32,能够定义Unicode的全部扩展。采用这种编码格式时,如果英文较多则会很浪费空间,在这种情况下,就出现了UNICODE的各种减肥子编码, 比如UTF-8对数字和字母就使用一个字节,而对汉字就使用3个字节,从而达到了减肥还能保证健康的效果UTF-8,UTF-16针对不同类型的数据有不同的减肥效果

    再说字节与字符

    字节(Byte)是计量单位,表示数据量多少,字符只是计算机中使用的字母、数字、字(汉字)和符号

    不同编码格式一个字符对应不同的字节(中英文符号与字母或汉字都作为字符,占用字节数都一一对应):

    1:ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。
    2:GBK编码中,英文字母一个字节,一个中文汉字两个字节。
    3:UTF-8 编码中,一个英文字母为一个字节,一个中文为三个字节。
    4:Unicode 编码中,一个英文为一个字节,一个中文为两个字节。
    5:UTF-16 编码中,一个英文字母字符或一个汉字字符存储都需要 2 个字节。
    6:UTF-32 编码中,世界上任何字符的存储都需要 4 个字节。

    差不多了解了字符字节关系了吧,占几个字节是看编码格式的,这些编码方式中具体中英文占几个字节,还是查各自编码的官方数据为准吧,网上五花八门的,我摘抄自菜鸟,,,有问题找菜鸟

    在UTF-8中,一个汉字为什么需要三个字节?

    展开全文
  • Java语言中一个字符几个字节

    万次阅读 2019-01-04 15:54:51
    内码是程序内部使用字符编码,特别是某种语言实现其char或String类型在内存里的内部编码; 外码是程序与外部交互时外部使用字符编码。“外部”相对“内部”而言;不是char或String在内存里的内部编码的地方...

    要区分清楚内码(internal encoding)和外码(external encoding)就好了。

    内码是程序内部使用的字符编码,特别是某种语言实现其char或String类型在内存里用的内部编码;
    外码是程序与外部交互时外部使用的字符编码。“外部”相对“内部”而言;不是char或String在内存里用的内部编码的地方都可以认为是“外部”。例如,外部可以是序列化之后的char或String,或者外部的文件、命令行参数之类的。

    Java语言规范规定,Java的char类型是UTF-16的code unit,也就是一定是16位(2字节);

    char, whose values are 16-bit unsigned integers representing UTF-16 code units ( §3.1).

    然后字符串是UTF-16 code unit的序列:

    The Java programming language represents text in sequences of 16-bit code units, using the UTF-16 encoding.

    这样,Java规定了字符的内码要用UTF-16编码。或者至少要让用户无法感知到String内部采用了非UTF-16的编码。

     

    另举一例:
    Java标准库实现的对char与String的序列化规定使用UTF-8作为外码。Java的Class文件中的字符串常量与符号名字也都规定用UTF-8编码。这大概是当时设计者为了平衡运行时的时间效率(采用定长编码的UTF-16)与外部存储的空间效率(采用变长的UTF-8编码)而做的取舍。
    作者:国栋
    链接:https://www.zhihu.com/question/27562173/answer/76208352
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
     

    首先,你所谓的“字符”具体指什么呢?

    如果你说的“字符”就是指 Java 中的 char,那好,那它就是 16 位,2 字节。

    如果你说的“字符”是指我们用眼睛看到的那些“抽象的字符”,那么,谈论它占几个字节是没有意义的。

    具体地讲,脱离具体的编码谈某个字符占几个字节是没有意义的

    就好比有一个抽象的整数“42”,你说它占几个字节?这得具体看你是用 byte,short,int,还是 long 来存它。用 byte 存就占一字节,用 short 存就占两字节,int 通常是四字节,long 通常八字节。当然,如果你用 byte,受限于它有限的位数,有些数它是存不了的,比如 256 就无法放在一个 byte 里了。

    字符是同样的道理,如果你想谈“占几个字节”,就要先把编码说清楚。

    同一个字符在不同的编码下可能占不同的字节

    就以你举的“ ”字为例,“ ”在 GBK 编码下占 2 字节,在 UTF-16 编码下也占 2 字节,在 UTF-8 编码下占 3 字节,在 UTF-32 编码下占 4 字节。

    不同的字符在同一个编码下也可能占不同的字节

    ”在 UTF-8 编码下占3字节,而“ A”在 UTF-8 编码下占 1 字节。(因为 UTF-8 是 变长编码)

    而 Java 中的 char 本质上是 UTF-16 编码。而 UTF-16 实际上也是一个变长编码(2 字节或 4字节)。

    如果一个抽象的字符在 UTF-16 编码下占 4 字节,显然它是不能放到 char 中的。换言之, char 中只能放 UTF-16 编码下只占 2 字节的那些字符。

    而 getBytes 实际是做编码转换,你应该显式传入一个参数来指定编码,否则它会使用缺省编码来转换。

    你说“ new String("字").getBytes().length 返回的是3 ”,这说明缺省编码是 UTF-8.如果你显式地传入一个参数,比如这样“ new String("字").getBytes(" GBK").length ”,那么返回就是 2.

    你可以在启动 JVM 时设置一个缺省编码,

    假设你的类叫 Main,那么在命令行中用 java 执行这个类时可以通过 file.encoding 参数设置一个缺省编码。比如这样:java -D file.encoding= GBKMain这时,你再执行不带参数的 getBytes() 方法时,new String("字").getBytes().length 返回的就是 2 了,因为现在缺省编码变成 GBK 了。当然,如果这时你显式地指定编码,new String("字").getBytes(" UTF-8").length 返回的则依旧是 3.

    否则,会使用所在操作系统环境下的缺省编码。

    通常,Windows 系统下是 GBK,Linux 和 Mac 是 UTF-8.但有一点要注意,在 Windows 下使用 IDE 来运行时,比如 Eclipse,如果你的工程的缺省编码是 UTF-8,在 IDE 中运行你的程序时,会加上上述的 -D file.encoding= UTF-8 参数,这时,即便你在 Windows 下,缺省编码也是 UTF-8,而不是 GBK。

    由于受启动参数及所在操作系统环境的影响,不带参数的 getBytes 方法通常是不建议使用的,最好是显式地指定参数以此获得稳定的预期行为。

    展开全文
  • 一个字符几个字节

    千次阅读 2020-12-10 00:56:32
     一个英文字符等于一个字节一个中文(含繁体)等于三个字节。 Unicode编码:  一个英文等于两个字节一个中文(含繁体)等于两个字节。  符号:  英文标点占一个字节,中文标点占两个字节。举例:英文句号...

    ASCII码:
      一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。

    UTF-8编码:
      一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。

    Unicode编码:
      一个英文等于两个字节,一个中文(含繁体)等于两个字节。
      符号:
      英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。

    展开全文
  • 注意如果当遇到英文时,字符流足够聪明,次就读一个字节,如遇到中文,次读两个字节。比如a就占一个字节,即97.见下面的例子。我们摘录段java官方文档:Each invocation of one of an InputStreamReader's ...
  • 一个中文字符对应几个字节

    千次阅读 2019-08-18 16:42:23
    这个和字符编码有关。所谓字符编码,就是规定了如何将字符串转成byte[]。 同一个汉字,在不同的字符编码下,得到的结果也不同。...以GBK编码时,一个汉字得到2个字节。 以UTF-8编码时,一个汉字得到2~3个字节。 ...
  • 英文字母和中文汉字在不同字符集编码下的字节英文字母: 字节数 : 1;编码:GB2312 字节数 : 1;编码:GBK 字节数 : 1;编码:GB18030 字节数 : 1;编码:ISO-8859-1 字节数 : 1;编码:UTF-8 字节数 : 4;编码...
  • Java 语言中一个字符几个字节

    千次阅读 2020-06-08 15:20:09
    Java 语言中一个字符几个字节
  • javascript中一个字符几个字节

    千次阅读 2019-01-23 10:23:01
    英文字母和中文汉字在不同字符集编码下的字节英文字母: 字节数 : 1;编码:GB2312 字节数 : 1;编码:GBK 字节数 : 1;编码:GB18030 字节数 : 1;编码:ISO-8859-1 字节数 : 1;编码:UTF-8 字节数 : 4;编码:UTF-16...
  • Java一个汉字占几个字节(详解与原理)(转载)

    万次阅读 多人点赞 2019-05-29 23:33:35
    今天学习Netty做定长消息发送时,发现到UTF-8编码下的中文并非两个字节,是三个字节,omg~,遂翻了篇博客后才发现原来java中文对应的字节长度还有这么多说道,涨姿势了,咳咳~ 原文如下: 忒长了,原文作者大大辛苦...
  • 一个字符等于几个字节 什么是utf8?

    千次阅读 2019-05-13 10:43:00
    不同的字符所占的字节是不同的。 ASCII码: 一个英文字母(不分大小写)占一个字节的空间,一个中文...一个英文字符等于一个字节一个中文(含繁体)等于三个字节。 Unicode编码: 一个英文等于两个字节一个...
  • Unicode定义了所有符号的二进制形式,也就是符号如何在计算机内部存储的,而且每个符号规定都必须使用个字节来表示,也就是16位二进制去代表一个符号,这样就导致了一个问题,英文编码的空间浪费,因为在ANSI中...
  • gbk英文字符几个字节?

    千次阅读 2019-06-13 10:02:59
    ➜ ~ python3 >>> bytes("你", "gbk") b'\xc4\xe3' >>> bytes("a", "gbk") b'a' >>> bytes("你", "utf-8") b'\xe4\xbd\xa0' >...gbk中文2个字节英文1个字节;utf...
  • utf-8的中文,一个字符几个字节

    千次阅读 2020-06-19 14:56:13
    utf-8的中文,一个字符几个字节 https://blog.csdn.net/kindsuper_liu/article/details/80202150 英文字母和中文汉字在不同字符集编码下的字节数 英文字母: ·字节数 : 1;编码:GB2312 字节数 : 1;编码:GBK...
  • 先看看字符与字节有什么区别: ()“字节”的定义 字节(Byte)是种计量单位,表示数据量...数字、字母等符号都是字符字符只占一个字节,汉字占两个(UTF-8) 不同的编码格式下字符占用的字节时不同的: ...
  • Unicode字符需要几个字节来存储?

    千次阅读 2019-05-29 11:16:14
    我们常说的这句话“Unicode字符是2个字节”这句话有毛病 Unicode目前规划的总空间有17个平面, 0x0000---0x10FFFF,每个平面有 65536 个码点. Unicode支持的字符上限是65536个 这句话也是有问题的,这65536个字符是...
  • GBK与UTF-8的中文是一个字符几个字节 编码:GBK 字节数:2 编码:UTF-8 字节数:3 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, ...
  • 一个汉字是几个字节

    万次阅读 2019-06-21 21:11:11
    一个汉字是几个字节 常用中文字符用utf-8编码占用3个字节(大约2万多字),但超大字符集中的更大多数汉字要占4个字节(在unicode编码体系中,U+20000开始有5万多汉字)。 GBK、GB2312收编的汉字占2个字节,严格地...
  • 细说一个汉字等于几个字符,以及汉字,字符,字节,位之间的关系 全文主旨总结: 一: 1个汉字 = 1个字 = 1个字符 二: 1个字符 = 1个字节 = 8bit(ACSII码下) 三: 1个字符 = 2个字节 = 16bit(Unicode码下) 四...
  • mysql一个字符占用多少个字节

    万次阅读 2018-12-17 14:41:34
    UTF-8:UTF-8一个(字符)占用(3)个字节英文占用(1)个字节。 GDK: GDK一个(字符)占用(2)个字节英文占用(1)个字节。 针对于数据库 例如这种数据库字段定义方式: 首先mysql会忽略具体的存储细节(本人是个小白还不...
  • utf-8的中文是一个字符几个字节

    万次阅读 多人点赞 2018-05-05 01:40:02
    英文字母和中文汉字在不同字符集编码下的字节英文字母: ·字节数 : 1;编码:GB2312 字节数 : 1;编码:GBK 字节数 : 1;编码:GB18030 字节数 : 1;编码:ISO-8859-1 字节数 : 1;编码:UTF-8 字节数 : 4;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 466,012
精华内容 186,404
关键字:

一个英文字符用几个字节