精华内容
下载资源
问答
  • 一个字符占几个字节

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

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

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

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

    展开全文
  • utf-8的中文,一个字符占几个字节

    千次阅读 2020-06-19 14:56:13
    utf-8的中文,一个字符占几个字节 https://blog.csdn.net/kindsuper_liu/article/details/80202150 英文字母和中文汉字在不同字符集编码下的字节数 英文字母: ·字节数 : 1;编码:GB2312 字节数 : 1;编码:GBK...

    utf-8的中文,一个字符占几个字节

    https://blog.csdn.net/kindsuper_liu/article/details/80202150

     

    英文字母和中文汉字在不同字符集编码下的字节数
    英文字母:
    ·字节数 : 1;编码:GB2312

    字节数 : 1;编码:GBK

    字节数 : 1;编码:GB18030

    字节数 : 1;编码:ISO-8859-1

    字节数 : 1;编码:UTF-8

    字节数 : 4;编码:UTF-16

    字节数 : 2;编码:UTF-16BE

    字节数 : 2;编码:UTF-16LE

    中文汉字:
    字节数 : 2;编码:GB2312

    字节数 : 2;编码:GBK

    字节数 : 2;编码:GB18030

    字节数 : 1;编码:ISO-8859-1

    字节数 : 3;编码:UTF-8

    字节数 : 4;编码:UTF-16

    字节数 : 2;编码:UTF-16BE

    字节数 : 2;编码:UTF-16LE

    美国人首先对其英文字符进行了编码,也就是最早的ascii码,用一个字节的低7位来表示英文的128个字符,高1位统一为0;

    后来欧洲人发现你这128位哪够用,比如法国人字母上面的还有注音符,这个怎么区分,于是把高1位编进来吧,这样欧洲普遍使用一个全字节进行编码,最多可表示256位。

    但是即使位数少,不同国家地区用不同的字符编码,虽然0–127表示的符号是一样的,但是128–255这一段的解释完全乱套了,即使2进制完全一样,表示的字符完全不一样,比如135在法语,希伯来语,俄语编码中完全是不同的符号;

    更麻烦的是,这编码传到中国后,中国人发现我们有10万多个汉字,你们欧美这256字塞牙缝都不够。于是就发明了GB2312这些汉字编码,典型的用2个字节来表示绝大部分的常用汉字,最多可以表示65536个汉字字符,这样就不难理解有些汉字你在新华字典里查得到,但是电脑上如果不处理一下你是显示不出来的了吧。

    这下各用各的字符集编码,这世界咋统一?俄国人发封email给中国人,两边字符集编码不同,尼玛显示都是乱码啊。为了统一,于是就发明了unicode,将世界上所有的符号都纳入其中,每一个符号都给予一个独一无二的编码,现在unicode可以容纳100多万个符号,每个符号的编码都不一样,这下可统一了,所有语言都可以互通,一个网页页面里可以同时显示各国文字。

    然而,unicode虽然统一了全世界字符的二进制编码,但没有规定如何存储啊。x86和amd体系结构的电脑小端序和大端序都分不清,别提计算机如何识别到底是unicode还是acsii了。如果Unicode统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是0,文本文件的大小会因此大出二三倍,这对于存储来说是极大的浪费。这样导致一个后果:出现了Unicode的多种存储方式。

    互联网的兴起,网页上要显示各种字符,必须统一。utf-8就是Unicode最重要的实现方式之一。另外还有utf-16、utf-32等。UTF-8不是固定字长编码的,而是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。这是种比较巧妙的设计,如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。

    注意unicode的字符编码和utf-8的存储编码表示是不同的,例如”严”字的Unicode码是4E25,UTF-8编码是E4B8A5,这个7里面解释了的,UTF-8编码不仅考虑了编码,还考虑了存储,E4B8A5是在存储识别编码的基础上塞进了4E25。

    UTF-8 使用一至四个字节为每个字符编码。128 个 ASCII 字符(Unicode 范围由 U+0000 至 U+007F)只需一个字节,带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及马尔代夫语(Unicode 范围由 U+0080 至 U+07FF)需要二个字节,其他基本多文种平面(BMP)中的字符(CJK属于此类-Qieqie注)使用三个字节,其他 Unicode 辅助平面的字符使用四字节编码。

    最后,要回答你的问题,常规来看,中文汉字在utf-8中到底占几个字节,一般是3个字节,最常见的编码方式是1110xxxx 10xxxxxx 10xxxxxx。

    展开全文
  • 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 方法通常是不建议使用的,最好是显式地指定参数以此获得稳定的预期行为。

    展开全文
  • 2,UTF-8编码:一个英文字符等于一个字节一个中文(含繁体)等于三个字节。中文标点三个字节,英文标点占一个字节 3,Unicode编码:一个英文等于两个字节一个中文(含繁体)等于两个字节。中文标点两个字节...

    不同编码方式,占用的字节是不同的:

    1,ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字度节的空间。

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

    3,Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节

     


    在java中,一个字符等于多少字节?或者更详细的问:在java中,一个英文字符等于多少字节?一个中文字符等于多少字节?

     java采用unicode编码,故均占两个字节。一个char就是两个字节

     

     

     

    转载自:https://zhidao.baidu.com/question/344188844.html

                  https://blog.csdn.net/qwert789p/article/details/89091793

    展开全文
  • utf-8的中文是一个字符占几个字节

    万次阅读 多人点赞 2018-05-05 01:40:02
    英文字母和中文汉字在不同字符集编码下的字节数 英文字母: ·字节数 : 1;编码:GB2312 字节数 : 1;编码:GBK 字节数 : 1;编码:GB18030 字节数 : 1;编码:ISO-8859-1 字节数 : 1;编码:UTF-8 字节数 : 4;...
  • 今天学习Netty做定长消息发送时,发现到UTF-8编码下的中文并非两个字节,是三个字节,omg~,遂翻了篇博客后才发现原来java中文对应的字节长度还有这么多说道,涨姿势了,咳咳~ 原文如下: 忒长了,原文作者大大辛苦...
  • 一个字母占几个字节

    千次阅读 2018-12-18 15:53:21
    一个字母占几个字节  (2010-11-06 10:41:24) 转载▼ 标签:  杂谈   我真的搞不清楚你到底想问什么,而且你有的表述也不准确严谨 所以只好把基本的单位先说下。 比特(bit)即一个二进制位 例如...
  • 一个字节8位,英文字母1个字节,GB2312中一个汉字2个字节,Unicode 全世界所有得字符,文字所对应得编码,Unicode中4个字节表示1个字符(字符:像一个英文字母,一个汉字,一个&符号,均称为一个字符)。...
  • UTF-8编码占几个字节?

    万次阅读 2019-01-29 16:18:00
    2个字节的:带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、...一个utf8数字1个字节 一个utf8英文字母1个字节 少数是汉字每个占用3个字节,多数占用4个字节。   占用3个字节的范围     ...
  • oracle数据库一个汉字占几个字节

    千次阅读 2019-10-17 09:39:59
    ***和数据库的编码有关系*** 1、数据库编码查询sql: 1)、SELECT value$ FROM sys.props$ WHERE name = 'NLS_... ZHS16GBK:一个汉字占用2个字节 AL32UTF8:一个汉字占用3个字节 2)、select userenv...
  • 一个汉字占几个字节是不是不太好记呢,编码不一样则占字节位就不一样。下面用一段简短的代码了解一下一个汉字占几个字节。 示例 String s = "情系IT"; try { byte[] bytes1 = s.getBytes("gbk"); for (byte b : ...
  • 关于java中的中文字符占几个字节

    千次阅读 2016-09-24 16:22:36
    以utf8为例,utf8是一个变长编码标准,可以以1~4个字节表示一个字符,而中文3个字节,ascII字符1个字节。 那么为什么我们在java里面可以用一个char来表示一个中文呢? 因为java是以unicode作为编码方式的。...
  • 我们平常说,java中char2个字节,可又说汉字在不通的编码格式中所的位数是不同的,比如... 那么问题来了,在java程序运行的时候,究竟汉字占几个字节呢? -------------------------- 文章抄袭自:http://www...
  • 先看看字符字节有什么区别: (一)“字节”的定义 字节(Byte)是一种计量单位,表示数据量...数字、字母等符号都是字符字符占一个字节,汉字两个(UTF-8) 不同的编码格式下字符占用的字节时不同的: ...
  • Java里的char类型变量与C语言中的不一样,是两个字节的。这一点想必大家都知道。...还是:每个汉字两个字节,英文字母占一个字节呢?   看下面程序: public class MyClass { public static void main
  • UTF-8中文一个汉字占几个字节

    千次阅读 2019-10-12 11:28:05
    英文字母和中文汉字在不同字符集编码下的字节数 英文字母: 字节数 : 1;编码:GB2312 字节数 : 1;编码:GBK 字节数 : 1;编码:GB18030 字节数 : 1;编码:ISO-8859-1 字节数 : 1;编码:UTF-8 字节数 : 4;编码...
  •  一个英文字符等于一个字节一个中文(含繁体)等于三个字节。 Unicode编码:  一个英文等于两个字节一个中文(含繁体)等于两个字节。  符号:  英文标点占一个字节,中文标点两个字节。举例:英文...
  • Oracle中一个汉字占几个字节

    千次阅读 2019-08-16 16:55:08
    Oracle中一个汉字占几个字节? 某天,在向一个字段类型为CHAR(6)的表中插入数据’大沽口’时报错,提示...N开头的字段类型(比如NCHAR,NVARCHAR2)中,任何一个字符(包括一个汉字)2个字节,统一的。 不以N开头的字段...
  • 英文字母和中文汉字在不同字符集编码下的字节数 英文字母: ·字节数 : 1;编码:GB2312 字节数 : 1;编码:GBK 字节数 : 1;编码:GB18030 字节数 : 1;编码:ISO-8859-1 字节数 : 1;编码:UTF-8 字节数 : 4;编码...
  • 一个字符等于几个字节 什么是utf8?

    千次阅读 2019-05-13 10:43:00
    一个英文字母(不分大小写)占一个字节的空间,一个中文汉字两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节...
  • ORACLE中一个字符占多少字节

    千次阅读 2014-09-15 13:58:22
    转自:... ...或许你会说一个中文字符2个字节,这是一定的?如何计算一个字符串的字节数?...在oracle中一个字符特别是中文占几个字节是不同的。 比如我创立一个表create table test_ly(a varcha
  • 16进制几个字符一个字节

    万次阅读 2016-07-29 15:49:16
    16进制中,两个字符一个字节,一个字符的话,是一个字节。   例如:A是一个字节,AA是一个字节,AAA是两个字节,AAAA是两个字节。   不过,16进制能够出现的字符(不区分大小写)是:1,2,3,4,5,6,7,8,9,0,A,B,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 491,340
精华内容 196,536
关键字:

一个符号占几个字符