UTF8和UTF16

1  如果只是论一个汉字占用的字节数,那么 UTF-8 占用3个字节, UTF-16 占用2个字节。但是如果存储文本的话,需要在文本使用 EF BB BF 三个字节表示使用 UTF-8 编码,使用 FE FF 表示使用 UTF-16 编码。

2  UTF-16 固定表示两个字节表示一个字符,不管是字母还是汉字; UTF-8 使用 1- 3 个字节表示一个字符

3 UTF-8 一个字节表示英文, 3个字节表示汉字. UTF-16不论英文还是汉字都是2个字节

时间: 2024-08-17 21:50:24

UTF8和UTF16的相关文章

聊聊计算机中的编码(Unicode,GBK,ASCII,utf8,utf16,ISO8859-1等)

作为一个程序员,一个中国的程序员,想来“乱码”问题基本上都遇到过,也为之头疼过.出现乱码问题的根本原因是编码与解码使用了不同而且不兼容的“标准”,在国内一般出现在中文的编解码过程中. 我们平时常见的编码有Unicode,GBK,ASCII,utf8,utf16,ISO8859-1等,弄清这些编码之间的关系,就不难理解“乱码”出现的原因以及解决办法. 所谓字符集编码其实就是将字符(包括英文字符.特殊符号,控制字符,数字,汉子等)与计算机中的一个数字(二进制存储)一一对应起来,用这个数字来表示该字符

UTF-8、UTF-16、UTF-32编码的相互转换

最近在考虑写一个可以跨平台的通用字符串类,首先需要搞定的就是编码转换问题. vs默认保存代码文件,使用的是本地code(中文即GBK,日文即Shift-JIS),也可以使用带BOM的UTF-8.gcc则是UTF-8,有无BOM均可(源代码的字符集可以由参数-finput-charset指定).那么源代码可以采用带BOM的UTF-8来保存.而windows下的unicode是UTF-16编码:linux则使用UTF-8或UTF-32.因此不论在哪种系统里,程序在处理字符串时都需要考虑UTF编码之间

所谓编码--泛谈ASCII、Unicode、UTF8、UTF16、UCS-2等编码格式

最近在看nodejs的源码,看到stream的实现里面满地都是encoding,不由想起以前看过的一篇文章--在前面的随笔里面有提到过--阮一峰老师的<字符编码笔记:ASCII,Unicode和UTF-8>. 好的文章有一个好处,你每次看都会有新的收获,它就像一款拼图,你每次看都能收获几块碎片,补齐之前的认识:而好文章与拼图不一样的是,好文章是一块无垠的世界,当你不愿局限于当前的眼界的时候,你可以主动走出去,外面要更宽广.更精彩的多. 闲话说到这,开始聊聊所谓的编码. 大家都知道,计算机只认识

字符编码终极笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian

很详细很不错,转过来学习一下: 转载自:http://www.cnblogs.com/lidabo/archive/2013/11/27/3446518.html 1.字符编码.内码,顺带介绍汉字编码 字符必须编码后才能被计算机处理.计算机使用的缺省编码方式就是计算机的内码.早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5. GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号.汉字区的内码范围

快来领取一场专门讲解UTF-8与UTF-16编码算法的GitChat活动的免费名额

微信扫一扫,可打开该GitChat活动页面 字符编码是计算机世界里最基础.最重要.最令人困惑的一个主题之一.不过,在计算机教材中却往往浮光掠影般地草草带过,甚至连一本专门进行深入介绍的专著都找不到(对这一点我一直很困惑,为什么就没有哪位大牛对这个如此基础.重要而又如此容易让人困惑的主题写一本专著予以介绍呢). 字符编码的基础性.重要性,主要体现在它涉及面广.向下涉及到计算机的底层技术,甚至是硬件实现:向上几乎跟所有的操作系统.编程语言.应用程序都密切相关.而字符编码之所以成为了最令人困惑的主题之

简单几句话总结Unicode,UTF-8和UTF-16

概念 先说一说基本的概念,这包括什么是Unicode,什么是UTF-8,什么是UTF-16. Unicode,UTF-8,UTF-16完整的说明请参考Wiki(Unicode,UTF-8,UTF-16).用比较简单的话来说就是,Unicode定义了所有可以用来表示字符的数值集合(称之为Code Point).UTF-8和UTF-16等UTF标准定义了这些数值和字符的映射关系. UTF-8 优势 UTF-8最大的优势是,没有字节序的概念.所以特别适合用于字符串的网络数据传输,不用考虑大小端问题.

unicode 、utf-8 、utf-16、ascii 、gbk 、gb2312 的区别

很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节".再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去.他们看到这样是好的,于是它们就这机器称为"计算机". 开始计算机只在美国用.八位的字节一共可以组合出256(2的8次方)种不同的状态. 他们把其中的编号从0开始的32种状态分别规定了特殊的用途,一但终端.打印机遇上约定

ASCII、Unicode、UTF-8、UTF-16、GBK、GB2312、ANSI等编码方式简析

ASCII.Unicode.UTF-8.UTF-16.GBK.GB2312.ANSI等编码方式简析 序言 从各种字节编码方法中,能看到那个计算机发展的洪荒时期的影子. ASCII ASCII码有标准ASCII码和拓展ASCII码之分,这里分开讲解. 标准ASCII码 标准ASCII码占用一个字节,但是只用了后7位,第一位是0.一个字节本来可以表示256种不同情况,而由此ASCII码只有128种符号.这128种符号包括英文26字母的大小写.数字0-9.32个不可打印的控制字母.符号(就是我们在键盘

编码格式简介(ANSI、GBK、GB2312、UTF-8、UTF-16、GB18030和 UNICODE)

很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物,他们把这称为”字节”.再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去,他们就把这机器称为”计算机”. 开始计算机只在美国用.八位的字节一共可以组合出256(2的8次方)种不同的状态.他们把其中的编号从0开始的32种状态分别规定了特殊的用途,一但终端.打印机遇上约定好的这些字节被传过来时,就要做一些约定的动作.遇上 00×10, 终端就换行,遇上0×

C++ UTF8和UTF16互转代码

简介 1.这段代码只考虑在小端序情况下的转换(一般的机器都是的).2.这段代码需要C++11的支持(只是用到了u16string),如果不支持,可以添加下面代码 typedef uint16_t char16_t; typedef std::basic_string<char16_t> utfconvert.h #ifndef __UTFCONVERT_H__ #define __UTFCONVERT_H__ #include <string> // 从UTF16编码字符串构建,需