转:细说一个汉字等于几个字符,以及汉字,字符,字节,位之间的关系

全文主旨总结:

一:
        1个汉字 = 1个字 = 1个字符

二:
        1个字符 = 1个字节 = 8bit(ACSII码下)

三:
        1个字符 = 2个字节 = 16bit(Unicode码下)

四:
        一般在处理汉字时,会默认将 编码方式调整为Unicode码,因为这样 数据容纳范围更大,不易出现乱码。

参考资料:

网址: http://www.lovetofang.net/index.php/22.html

时间: 2024-10-11 23:31:26

转:细说一个汉字等于几个字符,以及汉字,字符,字节,位之间的关系的相关文章

C#中如何判断一个字符是汉字

判断一个字符是不是汉字通常有三种方法,第一种用 ASCII 码判断,第二种用汉字的 UNICODE 编码范围判 断,第三种用正则表达式判断,以下是具体方法. 1.用ASCII码判断 在 ASCII码表中,英文的范围是0-127,而汉字则是大于127,具体代码如下: string text = "是不是汉字,ABC"; for (int i = 0; i < text.Length; i++) { if ((int)text[i] > 127) Console.WriteLi

C#怎么判断字符是不是汉字

支持并尊重原创!原文地址:http://jingyan.baidu.com/article/2c8c281deb79ed0008252af1.html 判断一个字符是不是汉字通常有三种方法,第1种用 ASCII 码判断,第2种用汉字的 UNICODE 编码范围判 断,第3种用正则表达式判断,下面是具体方法. 1.用ASCII码判断 在 ASCII码表中,英文的范围是0-127,而汉字则是大于127,根据这个范围可以判断,具体代码如下: 调用方法:CheckStringChinese("是不是汉字

Java Int类型与字符,汉字之间的转换

/** * java 中的流主要是分为字节流和字符流 * 再一个角度分析的话可以分为输入流和输出流 * 输入和输出是一个相对的概念 相对的分别是jvm虚拟机的内存大小 * 从另一个角度讲Java或者用Java开发的其他软件只是一个工具而已 * 你可以从几个角度进行深入,一个是利用好工具,一个是改造工具,一个是制造工具 */ try { BufferedReader bufferedReader=new BufferedReader(new FileReader(new File("D:\\ES笔

Unicode其实是Latin1的扩展。只有一个低字节的Uncode字符其实就是Latin1字符——附各种字符编码表及转换表

一.概念 1,ASCII ASCII(American Standard Code for Information Interchange),中文名称为美国信息交换标准代码.是基于拉丁字母的一套电脑编码系统.它主要用于显示现代英语和其他西欧语言.它是现今最通用的单字节编码系统.ASCII码又分为标准ASCII码和扩展ASCII码. 标准ASCII码.标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9.标点符号, 以及在美式英语中使用的特殊控制字符.

用js识别字符串中的英文字母字符和非字符(汉字)

前不久去阿里的在线笔试,最后一道题可算是难倒了我,题目大概是这样的:用原生的js实现字符串中的英文字母字符和汉字的识别,汉字按照两个单位计算,英文和字符按照一个单位计算,乍一想真不知道有什么好办法,以前写c代码太多,就用c代码对ascii的办法来,笔试结束字符才知道,js是很高大上的玩意儿,这招行不通.在这里我介绍一种很简单很靠谱的方法,用unicode字符集的办法来解决. 首先脑补一下小知识:unicode字符集数字0 - 128是英文字母字符(半角)的范畴,在这以外是其他字符(全角),用js

【Java基础】Java中的char是否可以存储一个中文字符之理解字符字节以及编码集

Java中的一个char采用的是Unicode编码集,占用两个字节,而一个中文字符也是两个字节,因此Java中的char是可以表示一个中文字符的. 但是在C/C++中由于采用的字符编码集是ASCII,只有一个字节,因此是没办法表示一个中文字符的. 解答了上面的浅显易懂的问题之后,下面彻底理清楚字符 字节以及编码的原理. 其实关于编码以及字节的问题,在腾讯实习生一面的时候也问到过,当时搞不懂面试官为什么会问这个问题,现在想想,这个问题还是很考验一个人的思考以及钻研深度的,而且这个问题远远比自己想象

php中一个字符占用几个字节?

先看看字符与字节有什么区别: (一)"字节"的定义 字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位. (二)"字符"的定义 字符是指计算机中使用的文字和符号,比如1.2.3.A.B.C.~!·#¥%---*()--+.等等. 数字.字母等符号都是字符,字符只占一个字节,汉字占两个(UTF-8) 不同的编码格式下字符占用的字节时不同的: ANSI 中文字符2.英文字符1字节UTF-8 中文字符3.英文字符1字节Unic

由“Java中一个字符占两个字节”引起

起因 Java中一个字符占两个字节,这和C/C++稍有区别.在C/C++中我们可以通过sizeof运算符方便地知道某个变量类型或对象的大小,那在Java中又如何? 问题出现 Java为什么没有提供sizeof运算符? 要回答这个问题,我们可以从另一个角度来看,那就是为什么C/C++中提供sizeof运算符.这就让人忍不住想到C/C++和Java在内存管理上的区别. 在C中,内存分配和释放的任务交给了程序员,当我们尝试用malloc为某个对象分配一块堆内存时,一个无法逃避的问题是,这个即将被创建的

for循环每次取出一个字符(不是字节)

python3.5 for循环每次取出一个字符(不是字节) #!/usr/bin/env python # -*- coding:utf-8 -*- my_str = "我是哈哈" for i in my_str: my_bytes = bytes(i, 'utf-8') print(my_bytes) my_bytes = bytes(i, 'gbk') print(my_bytes) for i in my_str: my_bytes = bytes(i, 'utf-8') for