- 浏览: 85293 次
文章分类
最新评论
-
bailangfei3344:
自我介绍 -
regionwar:
你好,转化为人为:1、不该加锁的不要加锁:局部变量,单线程占用 ...
关于java锁机制的优化 -
danni505:
希望能交流:
msn:danni-505#hotmail.co ...
关于java锁机制的优化 -
ouspec:
收藏的东西不错。
TOP500 -
willpower:
The idea behind is e-sync IO do ...
Rethink the sync
What is Unicode?
Unicode provides a unique number for every character,
no matter what the platform,
no matter what the program,
no matter what the language.
Fundamentally, computers just deal with numbers. They store letters and other characters by assigning a number for each one. Before Unicode was invented, there were hundreds of different encoding systems for assigning these numbers. No single encoding could contain enough characters: for example, the European Union alone requires several different encodings to cover all its languages. Even for a single language like English no single encoding was adequate for all the letters, punctuation, and technical symbols in common use.
These encoding systems also conflict with one another. That is, two encodings can use the same number for two different characters, or use different numbers for the same character. Any given computer (especially servers) needs to support many different encodings; yet whenever data is passed between different encodings or platforms, that data always runs the risk of corruption.
Unicode is changing all that!
Unicode provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language. The Unicode Standard has been adopted by such industry leaders as Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase, Unisys and many others. Unicode is required by modern standards such as XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML, etc., and is the official way to implement ISO/IEC 10646. It is supported in many operating systems, all modern browsers, and many other products. The emergence of the Unicode Standard, and the availability of tools supporting it, are among the most significant recent global software technology trends.
Incorporating Unicode into client-server or multi-tiered applications and websites offers significant cost savings over the use of legacy character sets. Unicode enables a single software product or a single website to be targeted across multiple platforms, languages and countries without re-engineering. It allows data to be transported through many different systems without corruption.
UTF8
它其实和Unicode是同类,就是在编码方式上不同!
首先UTF8编码后的大小是不一定,不像Unicode编码后的大小是一样的!
我们先来看Unicode的编码:一个英文字母 “a” 和 一个汉字 “好”,编码后都是占用的空间大小是一样的,都是两个字节!
而UTF8编码:一个英文字母“a” 和 一个汉字 “好”,编码后占用的空间大小就不样了,前者是一个字节,后者是三个字节!
现在就让我们来看看UTF8编码的原理吧:
因为一个字母还有一些键盘上的符号加起来只用二进制七位就可以表示出来,而一个字节就是八位,所以UTF8就用一个字节来表式字母和一些键盘上的符号。然而当我们拿到被编码后的一个字节后怎么知道它的组成?它有可能是英文字母的一个字节,也有可能是汉字的三个字节中的一个字节!所以,UTF8是有标志位的!
当要表示的内容是 7位 的时候就用一个字节:0******* 第一个0为标志位,剩下的空间正好可以表示ASCII 0-127 的内容。
当要表示的内容在 8 到 11 位的时候就用两个字节:110***** 10****** 第一个字节的110和第二个字节的10为标志位。
当要表示的内容在 12 到 16 位的时候就用三个字节:1110***** 10****** 10****** 和上面一样,第一个字节的1110和第二、三个字节的10都是标志位,剩下的空间正好可以表示汉字。
以此类推:
四个字节:11110**** 10****** 10****** 10******
五个字节:111110*** 10****** 10****** 10****** 10******
六个字节:1111110** 10****** 10****** 10****** 10****** 10******
.............................................
..............................................
明白了没有?
编码的方法是从低位到高位
现在就让我们来看看实例吧!
黄色为标志位
其它着色为了显示其,编码后的位置
Unicode十六进制 |
Unicode二进制 |
UTF8二进制 |
UTF8十六进制 |
UTF8字节数 |
B |
00001011 |
00001010 |
B |
1 |
9D |
00010011101 |
11000010 10011101 |
C2 9D |
2 |
A89E |
10101000 10011110 |
11101010 10100010 10011110 |
EA A2 9E |
3 |
发表评论
-
字符编码笔记:ASCII,Unicode和UTF-8 (引用)
2009-01-07 10:39 936字符编码笔记:ASCII,Unicode和UTF-8 阮一峰 ... -
How to set up a simple LRU cache using LinkedHash
2008-11-03 18:05 1283How to set up a simple LRU cach ... -
Scalability?
2008-10-07 14:07 833严格上讲,scalability还没有正式定义, 甚至有人觉得 ... -
Cray Reminiscences
2007-08-29 15:54 798Kirk Pepperdine's attendence of ... -
lock-free
2007-06-18 22:06 9951. http://www.ibm.com/developer ... -
解决java.lang.OutOfMemoryError: PermGen space(转帖)
2007-06-05 18:07 3163解决方案就是:在启动服务器时加上指定PermGen区域的内存大 ... -
Performance...
2007-06-05 15:11 983« I used to work for... | Mai ... -
数据仓库
2007-04-18 10:38 1123... -
Expressions Transform
2007-04-13 11:13 1398Expressions, Conversion and Eva ... -
Java cleanup code
2007-04-03 12:20 1298Java shutdown hook guarantee th ... -
Java performance tunning
2007-04-03 11:37 941http://www.javaperformancetunin ... -
Running IE from command line
2007-04-03 10:58 1117Here's a simple way you can ru ... -
Daemon Thread Notes
2007-04-03 09:16 26521. 只要程式中的non-Daemon thread都結束了. ... -
How to know the main class of a jar file?
2007-04-02 15:18 1031Easy. Here is an implementation ... -
The best chinese BAT tutorial(from www.boofee.net/bigfee/)
2007-03-27 11:58 1329如何创建批处理文件? 不要听了批处理文件就感到很神气 ... -
Basics - Binary search
2007-03-26 15:53 979java 代码 public class Bin ... -
MergeSort
2007-03-23 17:26 855MergeSort is a sample solutio ... -
Graph data structure
2007-03-23 12:04 8781. adjacent matrix good for bor ... -
Functional Programming For The Rest of Us
2007-03-23 10:39 1305I like connect beautiful artic ... -
Functional Programming For The Rest of Us
2007-03-23 10:24 1064I like connect beautiful artic ...
相关推荐
Unicode是一个国际标准,旨在统一全球各种语言的字符表示,而UTF-8和UTF-16则是Unicode的两种主要编码方式。本篇将深入探讨这两个编码格式以及如何在C语言中进行它们与Unicode之间的转换。 **Unicode** Unicode是...
这里我们将深入探讨UTF8和UTF8MB4两种编码格式,以及它们各自的排序规则`utf8mb4_unicode_ci`和`utf8mb4_general_ci`。 首先,UTF-8是一种广泛使用的Unicode字符编码方案,它允许使用1到4个字节来表示不同的字符。...
### vb utf8转Unicode知识点详解 #### 一、引言 在编程中,字符串编码转换是常见的需求之一,尤其是在处理多种语言文字时。Visual Basic(简称VB)作为一款广泛使用的编程语言,在处理文本数据时也需要面对不同的...
标题“XE5 And Upper AES Ansi Unicode UTF8”指的是在Embarcadero XE5开发环境中,结合AES(Advanced Encryption Standard)加密算法,处理Ansi、Unicode以及UTF8编码的场景。这种技术通常用于确保在手机平台上数据...
用了这么长时间,发现...那么在utf8_bin中你就找不到 txt = ‘A’ 的那一行, 而 utf8_general_ci 则可以. utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。 utf8_general_cs 区分大小写,如果
UTF8Content := TEncoding.UTF8.GetString(FileStream.Bytes); finally FileStream.Free; end; end; ``` 5. 写入UTF-8文件: 写入UTF-8文件时,同样需要使用`TEncoding.UTF8`进行编码,然后将数据写入文件。以下...
gb2312Bytes(j) = (utf8Bytes(i + 2) And &HF0) / 16 + (utf8Bytes(i + 2) And &HF) j = j + 1 Else ' 处理三字节字符 ' (这里仅处理双字节GB2312,忽略其他字符) Exit Function End If Else ' 单字节...
原因还是ASP转换unicode十分困难,但是支付宝的接口是有这么个函数的,而且代码很简练,我参考它设计了UTF-8编码函数。(支持多国语言的哦) 经过三天的改进,程序从17K精简到了9K,使hmac兼容中文,md5也提供了两...
Public Function UTF8Encode(ByRef str As String) As String Dim b Dim ub Dim High8b, Low8b Dim UtfB1, UtfB2, UtfB3 Dim i, s For i = 1 To Len(str) b = Mid(str, i, 1) ub = AscW(b) If ub If (ub ...
☞utf8字符是一个扩展,其中包含很酷的字符列表☆✪✰复制并粘贴到使用utf的网站上的消息❀中,例如twitter或wordpress:smiling_face:✓➩I:red_heart::hot_beverage::umbrella_with_rain_drops::smiling_face:☻中...
Unicode文件通常有两种主要格式:UTF-8和UTF-16。UTF-16是本实例中讨论的重点,它以两个字节表示一个字符,对于英文字符,这与ASCII编码相同,但对于其他语言,如中文、日文等,每个字符将占用两个字节。 读取...
Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '= 所以,自己把还没产生数据的表都删除,重新建立ut8表 此文件sql语句都是没产生数据的表,直接可以用py或者...
UTF-8是一种广泛使用的Unicode字符编码方案,它可以表示Unicode字符集中的所有字符,覆盖了全球大部分语言的文字。在编程环境中,UTF-8编码因其可读性强、跨平台兼容性好等特点,已经成为许多项目的标准编码方式。 ...
在这个"Perl_and_unicode_and_encode-源码.rar"压缩包中,我们可以期待找到关于Perl如何处理Unicode字符和编码转换的相关源码示例。Unicode是现代软件和互联网中用于表示世界上几乎所有文字的标准,而Perl中的编码...
Unicode可以被不同的字符编码所实现,最常见的编码包括UTF-8、UTF-16和现已过时的UCS-2。 ### Unicode的编码方式 - **UTF-8**:对于任何ASCII字符,UTF-8使用一个字节进行编码,这些字符在UTF-8和ASCII编码中的...
1. **文件编码识别**:在读取Unicode文件之前,你需要知道文件的编码类型,因为Unicode有多种实现方式,如UTF-8、UTF-16、UTF-32等。LabVIEW中的“文本文件读取VI”默认可能不支持Unicode,所以可能需要自定义函数或...
- 将**Encoding**选项改为“ISO10646/Unicode (UTF-8)”或"Chinese, National standard"。 - 点击**Apply**按钮应用设置。 这个步骤确保了在创建新的文件时,默认采用UTF-8编码,从而避免了中文乱码的问题。 #####...
UTF(Unicode Transformation Format)是Unicode编码的几种实现方式,其中最常见的是UTF-8、UTF-16和UTF-32。UTF-8是最广泛使用的编码格式,它使用1到4个字节表示一个字符,对ASCII字符使用单字节编码,对其他字符...
utf8mb4 是一种 Unicode 编码方式,可以表示更多的 Unicode 字符,而 utf8 只能表示基本多语言 plane 中的 Unicode 字符。utf8mb4 是 MySQL 中的一种字符集,它可以存储更多的 Unicode 字符。 知识点 2: 数据库字符...
}UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一...