目录

  • 1. Unicode编码
  • 2. 在网页中使用Unicode编码
  • 3. 为什么使用Unicode?
  • 4. Unicode与国际化
  • 5. 设计原则
  • 6. 【Unicode 码表】

1. Unicode编码

  • 在字符串中,使用转义字符输出Unicode编码
    \u + 4位编码
        <script>console.log("0031"); //返回:0031</script>

  • 加 \u 表示这个是Unicode编码
        <script>console.log("\u0031"); //返回:1</script>
        <script>console.log("\u2620"); //返回:☠//这是个骷髅Unicode编码,所以返回的是骷髅的图标</script>

2. 在网页中使用Unicode编码

    1 - &开头  ;结尾例如:&nbsp;    &lt;2 - &#编码;     这里的编码需要的是十进制的网上有转换器,你也可以用浏览器自带的计算器里面选择十进制。

3. 为什么使用Unicode?

在创造Unicode之前,有数百种编码系统。但是,没有任何一个编码可以包含足够的字符。例如,仅欧州共同体就需要好几种不同的编码来包括所有的语言。即使是单一的一种语言,如英语,也没有哪一个编码可以适用于所有的字母,标点符号,和常用的技术符号。

这些编码系统也会互相冲突。也就是说,两种编码可能使用相同的数字代表两个不同的字符,或使用不同的数字代表相同的字符。任何一台特定的计算机(特别是服务器)都需要支持许多不同的编码,但是,不论什么时候数据通过不同的编码或平台之间,那些数据总会有损坏的危险。

而Unicode正在改变所有这一切!
在Unicode标准中,提供了1,114,112个码点,不仅可以包含当今世界使用的所有语言文字和其他符号,也足够容纳绝大多数具有历史意义的古文字和符号。并且,Unicode给每个字符提供了一个唯一的数字,不论是什么平台,不论是什么程序,不论什么语言。
Unicode 标准已经被工业界的领导们所采用,例如:Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase, Unisys等等。最新的标准都需要Unicode,例如XML, Java, ECMAScript , LDAP, CORBA 3.0, WML等等,并且,Unicode是实现ISO/IEC 10646的正规方式。许多操作系统,所有最新的浏览器和许多其他产品都支持它。Unicode标准的出现和支持它工具的存在,是近来全球软件技术最重要 的发展趋势。


4. Unicode与国际化

直到最近,国际化的常用方法是,假定任何给定的可执行程序同时只和一种语言工作。如果在英文环境下安装,它就只处理英文文本;如果在中文环境下安装,就只处理中文文本。
在 这种模型下,针对不同的书写系统和语言,使用的字符集和字符编码不同。在Windows和大型机环境下,术语"代码页"(Code Page)用于描述如何将二进制值映射到人类可读得字符(字形)。一个运行的程序处在单一的代码页,该代码页确定二进制值如和与字形关联。
简便的国际化是Unicode的另一项优势。在内部使用Unicode的应用程序,能够同时存储和处理世界上所有的字符,这消除了传统的国际化方法所面临的一些困难。
当然,成功的国际化不仅仅是在应用程序中采用Unicode,还需要谨慎的屏幕布局设计(不同的语言具有不同的书写习惯)、翻译和文化理解。


5. 设计原则

Unicode的设计反映了十大基本原则,但这些原则并不是可以同时满足。整个设计是在保证简便高效和保持与已有编码标准兼容之间的平衡。

  • 广泛性(Universality)
    Unicode标准对一个单一的大字符集进行编码,包括满足世界范围需求的所有字符。
  • 高效(Efficiency)
    在Unicode的字符编码模型中没有换码符(escape character),每个字符编码与其它字符编码具有相同的状态。使高效率的实现成为可能。
    所有Unicode编码方式都是自同步的,并且相互不重叠。使在字符流中随机访问和查找操作高效。
    同一书写字母体系中的字符被放置在一起,不仅方便字符的查找,并且使实现更紧凑压缩方法更高效。
  • 针对字符编码,而不是字形(Character, Not Glyph)
    字符是书写语言中具有语义的最小组件的抽象表示。字符是以驻留在内存中的码点表示。
    字形是字符被显示时具有的形状。与字符相比,字形出现在屏幕或纸张上作为一个或多个字符的特定表示。字形的集合构成一种字体。
    字符和字形间存在多种关系:一个字形可以对应一个字符;一个字形也可以对应几个字符;多个字形也可能出自一个字符。
  • 语义(Semantic)
    在Unicode中,字符都有明确定义的语义。字符属性表可用于解析、排序等需要有关码点语义知识的算法中。Unicode中定义的属性包括数字、间隔、组合和方向属性。
  • 纯文本(Plain Text)
    纯文本或无格式文本,仅仅是字符编码的序列。纯Unicode文本就是Unicode编码的序列。而格式文本(styled text, or rich text)是由纯文本添加一些附加信息(如语言标识、字体大小、颜色等)组成的文本表示。
    Unicode标准针对的是纯文本。
  • 逻辑顺序(Logical Order)
    Unicode文本在内存表示中以逻辑顺序存储,大致对应于借助键盘输入文本的顺序。在一些情况下,当显示或打印文本时,字符顺序与逻辑顺序不同。
  • 统一(Unification)
    Unicode标准为避免对字符重复编码,对不同语言书写方式中的字符进行统一,相同的字符分配唯一的一个编码。普通字母、标点符号、标记,和变音符都只分配一个编码,而不管语言;同样的还有中日韩使用的表意字符。
  • 动态组合(Dynamic Composition)
    Unicode标准允许加重音符好的形式和Hangul音节的动态组合。
  • 等价序列(Equivalent Sequences)
    一些文本元素即可以使用静态的预先组合好的形式,也可使用动态组合的形式。Unicode字符的不同表示序列被认为是等价的。
    如果两个或多个序列被认为是等价的,Unicode标准不规定哪一种特定的序列是正确的,而认为每一个序列只不过与其它序列等价。
    如 果需要一种单一的单一的表示方式,可以使用一种规范化的Unicode文本形式来减少不想要区别。Unicode标准定义了四种规范化形式: Normalization Form D (NFD),Normalization Form KD (NFKD),Normalization Form C (NFC),和Normalization Form KC (NFKC)。大约来说,NFD和NFKD将可能的字符进行分解,而NFC和NFKC将可能的字符进行组合。

6. 【Unicode 码表】

0000-007F:C0控制符及基本拉丁文 (C0 Control and Basic Latin)
0080-00FF:C1控制符及拉丁文补充-1 (C1 Control and Latin 1 Supplement)
0100-017F:拉丁文扩展-A (Latin Extended-A)
0180-024F:拉丁文扩展-B (Latin Extended-B)
0250-02AF:国际音标扩展 (IPA Extensions)
02B0-02FF:空白修饰字母 (Spacing Modifiers)
0300-036F:结合用读音符号 (Combining Diacritics Marks)
0370-03FF:希腊文及科普特文 (Greek and Coptic)
0400-04FF:西里尔字母 (Cyrillic)
0500-052F:西里尔字母补充 (Cyrillic Supplement)
0530-058F:亚美尼亚语 (Armenian)
0590-05FF:希伯来文 (Hebrew)
0600-06FF:阿拉伯文 (Arabic)
0700-074F:叙利亚文 (Syriac)
0750-077F:阿拉伯文补充 (Arabic Supplement)
0780-07BF:马尔代夫语 (Thaana)
07C0-077F:西非書面語言 (N’Ko)
0800-085F:阿维斯塔语及巴列维语 (Avestan and Pahlavi)
0860-087F:Mandaic
0880-08AF:撒马利亚语 (Samaritan)
0900-097F:天城文书 (Devanagari)
0980-09FF:孟加拉语 (Bengali)
0A00-0A7F:锡克教文 (Gurmukhi)
0A80-0AFF:古吉拉特文 (Gujarati)
0B00-0B7F:奥里亚文 (Oriya)
0B80-0BFF:泰米尔文 (Tamil)
0C00-0C7F:泰卢固文 (Telugu)
0C80-0CFF:卡纳达文 (Kannada)
0D00-0D7F:德拉维族语 (Malayalam)
0D80-0DFF:僧伽罗语 (Sinhala)
0E00-0E7F:泰文 (Thai)
0E80-0EFF:老挝文 (Lao)
0F00-0FFF:藏文 (Tibetan)
1000-109F:缅甸语 (Myanmar)
10A0-10FF:格鲁吉亚语 (Georgian)
1100-11FF:朝鲜文 (Hangul Jamo)
1200-137F:埃塞俄比亚语 (Ethiopic)
1380-139F:埃塞俄比亚语补充 (Ethiopic Supplement)
13A0-13FF:切罗基语 (Cherokee)
1400-167F:统一加拿大土著语音节 (Unified Canadian Aboriginal Syllabics)
1680-169F:欧甘字母 (Ogham)
16A0-16FF:如尼文 (Runic)
1700-171F:塔加拉语 (Tagalog)
1720-173F:Hanunóo
1740-175F:Buhid
1760-177F:Tagbanwa
1780-17FF:高棉语 (Khmer)
1800-18AF:蒙古文 (Mongolian)
18B0-18FF:Cham
1900-194F:Limbu
1950-197F:德宏泰语 (Tai Le)
1980-19DF:新傣仂语 (New Tai Lue)
19E0-19FF:高棉语记号 (Kmer Symbols)
1A00-1A1F:Buginese
1A20-1A5F:Batak
1A80-1AEF:Lanna
1B00-1B7F:巴厘语 (Balinese)
1B80-1BB0:巽他语 (Sundanese)
1BC0-1BFF:Pahawh Hmong
1C00-1C4F:雷布查语(Lepcha)
1C50-1C7F:Ol Chiki
1C80-1CDF:曼尼普尔语 (Meithei/Manipuri)
1D00-1D7F:语音学扩展 (Phonetic Extensions)
1D80-1DBF:语音学扩展补充 (Phonetic Extensions Supplement)
1DC0-1DFF:结合用读音符号补充 (Combining Diacritics Marks Supplement)
1E00-1EFF:拉丁文扩充附加 (Latin Extended Additional)
1F00-1FFF:希腊语扩充 (Greek Extended)
2000-206F:常用标点 (General Punctuation)
2070-209F:上标及下标 (Superscripts and Subscripts)
20A0-20CF:货币符号 (Currency Symbols)
20D0-20FF:组合用记号 (Combining Diacritics Marks for Symbols)
2100-214F:字母式符号 (Letterlike Symbols)
2150-218F:数字形式 (Number Form)
2190-21FF:箭头 (Arrows)
2200-22FF:数学运算符 (Mathematical Operator)
2300-23FF:杂项工业符号 (Miscellaneous Technical)
2400-243F:控制图片 (Control Pictures)
2440-245F:光学识别符 (Optical Character Recognition)
2460-24FF:封闭式字母数字 (Enclosed Alphanumerics)
2500-257F:制表符 (Box Drawing)
2580-259F:方块元素 (Block Element)
25A0-25FF:几何图形 (Geometric Shapes)
2600-26FF:杂项符号 (Miscellaneous Symbols)
2700-27BF:印刷符号 (Dingbats)
27C0-27EF:杂项数学符号-A (Miscellaneous Mathematical Symbols-A)
27F0-27FF:追加箭头-A (Supplemental Arrows-A)
2800-28FF:盲文点字模型 (Braille Patterns)
2900-297F:追加箭头-B (Supplemental Arrows-B)
2980-29FF:杂项数学符号-B (Miscellaneous Mathematical Symbols-B)
2A00-2AFF:追加数学运算符 (Supplemental Mathematical Operator)
2B00-2BFF:杂项符号和箭头 (Miscellaneous Symbols and Arrows)
2C00-2C5F:格拉哥里字母 (Glagolitic)
2C60-2C7F:拉丁文扩展-C (Latin Extended-C)
2C80-2CFF:古埃及语 (Coptic)
2D00-2D2F:格鲁吉亚语补充 (Georgian Supplement)
2D30-2D7F:提非纳文 (Tifinagh)
2D80-2DDF:埃塞俄比亚语扩展 (Ethiopic Extended)
2E00-2E7F:追加标点 (Supplemental Punctuation)
2E80-2EFF:CJK 部首补充 (CJK Radicals Supplement)
2F00-2FDF:康熙字典部首 (Kangxi Radicals)
2FF0-2FFF:表意文字描述符 (Ideographic Description Characters)
3000-303F:CJK 符号和标点 (CJK Symbols and Punctuation)
3040-309F:日文平假名 (Hiragana)
30A0-30FF:日文片假名 (Katakana)
3100-312F:注音字母 (Bopomofo)
3130-318F:朝鲜文兼容字母 (Hangul Compatibility Jamo)
3190-319F:象形字注释标志 (Kanbun)
31A0-31BF:注音字母扩展 (Bopomofo Extended)
31C0-31EF:CJK 笔画 (CJK Strokes)
31F0-31FF:日文片假名语音扩展 (Katakana Phonetic Extensions)
3200-32FF:封闭式 CJK 文字和月份 (Enclosed CJK Letters and Months)
3300-33FF:CJK 兼容 (CJK Compatibility)
3400-4DBF:CJK 统一表意符号扩展 A (CJK Unified Ideographs Extension A)
4DC0-4DFF:易经六十四卦符号 (Yijing Hexagrams Symbols)
4E00-9FBF:CJK 统一表意符号 (CJK Unified Ideographs)
A000-A48F:彝文音节 (Yi Syllables)
A490-A4CF:彝文字根 (Yi Radicals)
A500-A61F:Vai
A660-A6FF:统一加拿大土著语音节补充 (Unified Canadian Aboriginal Syllabics Supplement)
A700-A71F:声调修饰字母 (Modifier Tone Letters)
A720-A7FF:拉丁文扩展-D (Latin Extended-D)
A800-A82F:Syloti Nagri
A840-A87F:八思巴字 (Phags-pa)
A880-A8DF:Saurashtra
A900-A97F:爪哇语 (Javanese)
A980-A9DF:Chakma
AA00-AA3F:Varang Kshiti
AA40-AA6F:Sorang Sompeng
AA80-AADF:Newari
AB00-AB5F:越南傣语 (Vi?t Thái)
AB80-ABA0:Kayah Li
AC00-D7AF:朝鲜文音节 (Hangul Syllables)
D800-DBFF:High-half zone of UTF-16
DC00-DFFF:Low-half zone of UTF-16
E000-F8FF:自行使用區域 (Private Use Zone)
F900-FAFF:CJK 兼容象形文字 (CJK Compatibility Ideographs)
FB00-FB4F:字母表達形式 (Alphabetic Presentation Form)
FB50-FDFF:阿拉伯表達形式A (Arabic Presentation Form-A)
FE00-FE0F:变量选择符 (Variation Selector)
FE10-FE1F:竖排形式 (Vertical Forms)
FE20-FE2F:组合用半符号 (Combining Half Marks)
FE30-FE4F:CJK 兼容形式 (CJK Compatibility Forms)
FE50-FE6F:小型变体形式 (Small Form Variants)
FE70-FEFF:阿拉伯表達形式B (Arabic Presentation Form-B)
FF00-FFEF:半型及全型形式 (Halfwidth and Fullwidth Form)
FFF0-FFFF:特殊 (Specials)

Unicode编码在JavaScript中的作用是什么?相关推荐

  1. 编码 unicode 及其在 javascript 中的使用

    编码 unicode 及其在 javascript 中的使用 一.javascript 使用 unicode16 字符集,可以使用中文变量名和函数名 计算机使用 8 位(bit)二进制表示一个字节(B ...

  2. 字符编码 unicode 及其在javascript 中的使用

    一.javascript 使用 unicode16 字符集,可以使用中文变量名和函数名 计算机使用 8 位(bit)二进制表示一个字节(Byte),计算机内存最小寻址单位就是 1 字节. 早期为了在计 ...

  3. javascript中??的作用

    判断null 和undefined handleOneClick() {let cc = undefined;let aa = null;let b = 0let ff = cc ?? '出错了'co ...

  4. 根本解决Python2中unicode编码问题

    Python2中编码问题 因为计算机只识别01这要的二进制,所以在计算机存储我们的文件时,要使用二进制数来表示.所以编码就是哪个二进制数表示哪个字符: 编码原由 系统编码.文件编码与python系统编 ...

  5. js文件\u开头的编码原来是unicode编码

    在js文件中发现一串编码,\u开头.起初以为是ASIIC码,也不是.utf-8编码也不是.后来,发现是unicode编码.支持中文和英文.很容易和URL编码混淆.例如,在浏览器地址栏中的空格变为%20 ...

  6. JavaScript中的定时器

    js定时器 通过使用 JavaScript,我们有能力作到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行.我们称之为计时事件. ** 定时器在javascript中的作用** 1.制 ...

  7. 读取unicode编码文件的乱码解决

    首先,有必要了解下记事本文件的几种编码方式: 四种常见文本文件编码方式研究 ANSI.UNICODE .UNICODE big endian.UTF-8四种格式编码存在差别,简要介绍如下: ANSI编 ...

  8. [Python]输入星座名查询对应Unicode编码图案

    文章目录 [*Python*]输入星座名查询对应*Unicode*编码图案 *Unicode*编码介绍 *Python*代码实现 [Python]输入星座名查询对应Unicode编码图案 生活中常见的 ...

  9. JavaScript中字符串与Unicode编码的互相转换

    JavaScript中字符串与Unicode编码的互相转换 这段代码演示了JavaScript中字符串与Unicode编码的转换: // 为了控制台的演示方便, 变量没有添加 var 定义 // 实际 ...

  10. JavaScript中Unicode编码和中文相互转换

    Unicode转换 简介 官方中文名称为统一码,也译名为万国码.国际码.单一码,是计算机科学领域的业界标准.它整理.编码了世界上大部分的文字系统,使得电脑可以用更为简单的方式来呈现和处理文字. Uni ...

最新文章

  1. taro 在components文件夹中 新建组件时,组件支持自定义命名,但是不能大写开头...
  2. 对比Android和iPhone的优缺点
  3. Xcode中添加代码块的方式
  4. Linux C语言错误处理
  5. 购物商城Web开发第一天
  6. 软件网络协议测试,网络协议测试方法是什么
  7. 如何证明服从卡方分布_概率论中的谁会证明(n-1)s^2/σ^2服从卡方分布
  8. java list打乱排序_JAVA Collections.shuffle打乱列表
  9. ubuntu中gitlab搭建
  10. JDK1.8帮助文档chm格式中英文
  11. RootKit检测工具
  12. 单片机c语言轻松入门 完整版,单片机C语言轻松入门
  13. 平方数之和【leetcode 633】
  14. 时间管理Smart法则,一个在高盛工作的学姐总结的12个时间管理妙招
  15. unity3D professional专业主题——黑色主题设置
  16. 地下城游戏 骑士拯救公主 | leetcode 174
  17. linux:常用命令
  18. nativefier(一行代码将任意网页转化为桌面应用)
  19. 游戏平台搭建在韩国大带宽服务器CN2路线哪里的比较好
  20. 如果要用运营的姿势,发支付宝红包

热门文章

  1. JDBC通过Mysql驱动包连接数据库
  2. holtek c语言,合泰单片机c语言教程
  3. 动手写简单的音乐推荐系统
  4. WebGrid Enterprise
  5. 抓取mooc中国随笔
  6. autocad2007二维图画法_AutoCAD2007中文版机械制图教程
  7. 软考之网络管理员(包含2004-2018历年真题详解+课本教材讲义+视频教程)
  8. 【最新最热12款】Java游戏项目_Java游戏开发_Java小游戏_王者荣耀_超级玛丽_黄金矿工_贪吃蛇_坦克大战_俄罗斯方块_推箱子_飞机大战_扫雷_桌球
  9. R语言:Error in file(out, “wt“) : cannot open the connection
  10. 2003系统如何搭建ftp服务器配置,WINDOWSSERVER2003系统架设FTP服务器配置方法.pdf