(Translated by https://www.hiragana.jp/)
字符编码 - 维基百科,自由的百科全书

编码

重定しげさだこうもとへん

编码英語えいごCharacter encoding)、しゅうこれしゅうなかてき指定してい集合しゅうごうちゅうぼういち对象(れい如:もとしき自然しぜんすう序列じょれつはちもとあるもの电脉冲),以便ぶんほんざい计算つくえちゅうそん储和どおり通信つうしん网络てき传递。ゆうため強調きょうちょう其所使用しようてき方式ほうしき使用しよう其他術語じゅつごたとえ如:ため說明せつめい電腦でんのう系統けいとう『內部』 處理しょり文字もじ資料しりょうしょ使用しようてきへん碼」かい使用しよう內碼ため不同ふどう電腦でんのう系統けいとうあいだためりょう交換こうかん資料しりょうしょ採用さいようてきへん碼」かい使用しよう交換こうかん

つね见的れい包括ほうかつしょうひしげ丁字ていじははおもて编码なり斯电码ASCII。其中,ASCIIはた字母じぼ数字すうじ其它符号ふごうへんごうなみよう7もとてき进制らい表示ひょうじ这个整数せいすう通常つうじょうかいがくがい使用しよう一个扩充的位元,以便于以1个てき方式ほうしきそん储。

ざい计算つくえわざ术发てんてき早期そうき,如ASCII(1963ねんEBCDIC(1964ねん)这样てきしゅう逐漸なりため標準ひょうじゅんただし这些しゅうてき局限きょくげん很快就变とくあかり显,于是じん们开发了許多きょた方法ほうほうらい扩展它们。对于支持しじ包括ほうかつ东亚CJK家族かぞくざい内的ないてきうつしさくけいてき要求ようきゅうのう支持しじさら大量たいりょうてき,并且需要じゅよう一种系统而不是临时的方法实现这些字符的编码。

简单しゅう

编辑

按照惯例,にん们认为字しゅう和字わじ编码どう义词いん使用しようどう样的标准てい提供ていきょう什么并且这些如何いか编码到一系列的代码单元(通常つうじょう一个字符一个单元)。よし于历てき原因げんいんMIME使用しよう这种编码てきけい使用しよう术语しゅうらい表示ひょうじよう于将一组字符编码成一系列八位字节数据的整个系统。

现代编码模型もけい

编辑

ゆかり統一とういつ通用つうようしゅうところ構成こうせいてき现代编码模型もけいそくぼつゆう跟从简单しゅうてき观点。它们はた编码てき概念がいねんぶん为:ゆう哪些、它们てき编号、这些编号如何いか编码なりいち系列けいれつてき“码元”(有限ゆうげん大小だいしょうてき数字すうじ)以及さいきさき这些单元如何いか組成そせいはち节流。區分くぶん這些概念的がいねんてき核心かくしん思想しそう建立こんりゅう一个能够用不同方法來编码的一个通用字符集。为了せい确地表示ひょうじ这个模型もけい需要じゅようさら多比たびしゅうかず编码”さら为精确的术语表示ひょうじざいUnicode Technical Report (UTR) #17ちゅう,现代编码模型もけいぶん为5个层所用しょようてき术语れつざい下面かめん

  1. 抽象ちゅうしょうひょう(Abstract character repertoire)一个系统支持的所有抽象字符的集合。ひょう以是ふう闭的,そくじょ创建いち个新てき标准(ASCII多数たすうISO/IEC 8859系列けいれつ这样てきれい),いやのりまこと添加てんかしんてき符号ふごうひょう也可以是开放てきそくまこと添加てんかしんてき符号ふごう統一とういつ碼和一定いってい程度ていどじょうだい碼頁方面ほうめんてきれい)。特定とくていひょうちゅうてき反映はんえいりょう如何いかはた书写けい分解ぶんかいなり线性しんいき单元てき决定。れい如拉ひのとまれ腊和斯拉おっと字母じぼひょうぶん为字はは数字すうじ、变音符号ふごう、标点如空かく这样てき一些少数特殊字符,它们のう按照一种简单的线性序列排列(つきかん对它们的处理需要じゅよう另外てき规则,如带ゆう变音符号ふごうてき字母じぼ这样てき特定とくてい序列じょれつ如何いかかい释——ただし这不ぞく于字ひょうてき范畴)。为了方便ほうべんおこり见,这样てきひょう包括ほうかつ预先编号てき字母じぼかず变音符号ふごうてき组合。其它てき书写けい统,如阿ひしげはく语和まれはく莱语,ゆかり于要适应そうこう文字もじざい同情どうじょうがた按照不同ふどう方式ほうしき交叉こうさざいいちおこりてき字形じけい,就使ようさら为复杂的符号ふごうひょう表示ひょうじ
  2. 编码しゅう(CCS:Coded Character Set)これはたしゅう ちゅうまい个字うついた1个坐标(整数せいすう值对:x, y)あるもの表示ひょうじ为1个非负整すう しゅう及码うつしょう为编码字しゅうれい如,ざい一个给定的字符表中,表示ひょうじだいうつしひしげ丁字ていじはは“A”てき赋予整数せいすう65、“B”66,如此继续个编码字しゅう表示ひょうじどう样的ひょうれいISO-8859-1かずIBMてきだい码页037和代かずよ码页500含蓋どう样的ひょうただしこれはたうつ不同ふどうてき整数せいすうよし此产せいりょう编码そら(encoding space)てき概念がいねん:简单说就包含ほうがん所有しょゆうてきひょうてき维度。以用一对整数来描述,れい如:GB 2312てき汉字编码そら间是94 x 94。以用一个整数来描述,れい如:ISO-8859-1てき编码そら间是256。也可以用字ようじてきそん储单もと尺寸しゃくすんらい描述,れい如:ISO-8859-1いち个8とくてき编码そら间。编码そら间还以用其子しゅうらいおもてじゅつ,如行、れつめん(plane)とう。编码そら间中てきいち位置いち(position)しょう码位(code point)。一个字符所占用的码位称为码位值(code point value)。1个编码字しゅう就是抽象ちゅうしょううつ为码值。
  3. 编码ひょう(CEF:Character Encoding Form),也称为"storage format",はた编码しゅうてき负整すう值(そく抽象ちゅうしょうてき码位)转换なり有限ゆうげんとく长度てきせいがた值(しょう码元code units)てき序列じょれつ。这对于定长编码来说是个到自身じしんてきうつ(null mapping),ただし对于变长编码らい说,该映しゃ较复杂,一些码位映射到一个码元,另外一些码位映射到由多个码元组成的序列。れい如,使用しよう16とく长的そん储单もと保存ほぞん数字すうじしんいきけい统每个单もとただのう直接ちょくせつ表示ひょうじ从0いた65,535てきすう值,ただし如果使用しよう个16单元就能够表示ひょうじさらだいてき整数せいすう。这就CEFてき作用さよう,它可以把Unicode从0いた140万的码空间范围的每个码位映射到单个或多个在0いた65,5356范围ないてき码值。さい简单てき编码ひょう就是單純たんじゅん选择あし够大てき单位,以保证编码字集中しゅうちゅうてき所有しょゆうすう值能够直接ちょくせつ编码(一个码位对应一个码值)。这对于能够用使用しよう八位元组來表示的编码字符集(如多すう传统てきCJKてきしゅう编码)合理ごうりてき,对于のう使用しようじゅう六位元來表示的编码字符集(如早版本はんぽんてきUnicode)らい说也あし合理ごうりただしずい编码しゅうてき大小だいしょう增加ぞうかれい如,现在てきUnicodeてきしゅういたりしょう需要じゅよう21才能さいのう全部ぜんぶ表示ひょうじ),这种直接ちょくせつ表示法ひょうじほう变得越来ごえくえつぼつ有效ゆうこうりつ,并且很难让现ゆう计算つくえけい统适应更だいてき码值。よし此,许多使用しようしんきん版本はんぽんUnicodeてきけい统,あるものはたUnicode码位對應たいおうため变长てき8序列じょれつてきUTF-8あるものはた码位對應たいおう为可变长てき16序列じょれつてきUTF-16
  4. 编码方案ほうあん(CES:Character Encoding Scheme),也称さく"serialization format"。はたてい长的せいがた值(そく码元)うついた8序列じょれつ,以便编码きさきてきすうすえてきぶんけんそん储或网络传输。ざい使用しようUnicodeてき场合,使用しよう一个简单的字符来指定字节顺序是だいはしじょあるものしょうはしじょただし对于UTF-8らい说并需要じゅよう专门ゆびあかり节序)。しか而,ゆう些复杂的编码つくえせい(如ISO/IEC 2022使用しようひかえせい转义序列じょれつざい几种编码しゅうあるものよう于减しょうごと个单もと所用しょよう节数てき压缩つくえせい(如SCSUBOCUPunycode间切换。
  5. 传输编码语法(transfer encoding syntax),よう于处じょう一层次的字符编码方案提供的字节序列。一般其功能包括两种:一是把字节序列的值映射到一套更受限制的值域内,以满あし传输环境てききりせいれい如Email传输时Base64あるものquoted-printableみやこただし8てき节编码为7长的すうすえ;另一是压缩字节序列的值,如LZWあるもの行程こうてい长度编码とう无损压缩わざ术。

こう层机せい(higher level protocol)提供ていきょうりょう外信がいしんいきよう于选择Unicodeてき特定とくてい变种,如XML属性ぞくせいxml:lang

うつ(character map)ざいUnicodeちゅう保持ほじりょう其传统意义:从字序列じょれついた编码きさきてき序列じょれつてきうつ包括ほうかつりょう上述じょうじゅつてきCCS, CEF, CES层次。

しゅうだい码页,あずかうつ

编辑

术语编码(character encoding),うつ(character map),しゅう(character set)あるものだい码页ざい历史じょう往往おうおうどう概念がいねんそくひょう(repertoire)ちゅうてき如何いか编码为码もとてきりゅう(stream of code units)–通常つうじょうごと个字对应单个码元。

码元(Code Unit,也称「だい码单もと」)ゆび一个已编码的文本中具有最短的比特组合的单元。对于UTF-8らい说,码元8とく长;对于UTF-16らい说,码元16とく长;对于UTF-32らい说,码元32とく[1]。码值(Code Value过时てき用法ようほう

だい码页通常つうじょう意味いみめんこう节的编码,ただしつよ调是一套用于不能语言的编码方案的集合.著名ちょめいてき如"Windows"だい码页系列けいれつ,"IBM"/"DOS"だい码页系列けいれつ.

IBMてきすうすえ表示ひょうじ体系たいけい(Character Data Representation Architecture - CDRA)あずか编码しゅう标识(coded character set identifiers - CCSIDs) 常常つねづねcharset, character set, code page, or CHARMAPとう类似义的术语混用こんよう.

UnixあるLinux使用しようだい码页概念がいねん,它们ようcharmap,locales具有ぐゆうさら广泛てき含义.

あずかうわぶんてき编码しゅう(Coded Character Set - CCS)不同ふどう编码(character encoding)抽象ちゅうしょういただい码字(code word)てきうつしゃ. HTTP(あずかMIME)てき用法ようほうちゅうしゅう(character set)あずか编码どう义,ただしあずかCCSいち意思いし.

编码(不全ふぜん

编辑

西欧せいおう标准

编辑

DOSしゅうまたたたえIBMだい码页

编辑

Windowsしゅう

编辑

しゅうしゅう

编辑

ゆう其是漢字かんじへん

臺灣たいわん

编辑

日本にっぽん

编辑

中國ちゅうごく大陸たいりく及港澳

编辑

あさ鲜半岛

编辑

こしみなみ

编辑

印度いんど

编辑

統一とういつ

编辑

转换工具こうぐ

编辑

よし于有很多种字编码方法ほうほう使用しよう,从一种字符编码转换到另一种,需要じゅよういち些工

またが平台ひらだい

  • 网页浏览だい多数たすう现代てき网页浏览具有ぐゆう此功のう。一般是在菜单"查看"(View)/"编码"(Character Encoding)
  • iconvほどじょあずか编程API,よう于字编码转换
  • convert_encoding.py –もとPythonてき转换工具こうぐ.[2]
  • decodeh.py –よう于启发性猜测编码方案ほうあんてき算法さんぽうあずか块.[3]
  • 國際こくさい統一とういつ碼部けんいちC语言あずかJava语言てき开源库,ゆかりIBM提供ていきょうよう于統一碼等多语言编码的转换、实现.
  • chardetMozillaてき编码动检测代码的Python语言实现.
  • しん版本はんぽんてきUnix命令めいれいFile做字编码てき检测.(cygwinあずかmacみやこゆう此命れい

Linux:

  • recode – [4]
  • utrac – はたせい个文けん内容ないよう从一种字符编码转换到另外一种[5]
  • cstocs –
  • convmv –转换ぶん件名けんめい.[6]
  • enca –分析ぶんせき编码しき.[7]

Microsoft Windows:

  • Encoding.Convert – .NET API[8]
  • MultiByteToWideChar/WideCharToMultiByte – Windows API[9]
  • cscvt –转换工具こうぐ[10]
  • enca –分析ぶんせき编码方法ほうほう[11]

参考さんこう文献ぶんけん

编辑
  1. ^ Glossary of Unicode Terms. [2012-04-07]. (原始げんし内容ないようそん于2015-12-26). 
  2. ^ Homepage of Michael Goerz – convert_encoding.py. [2012-03-23]. (原始げんし内容ないようそん档于2010-10-28). 
  3. ^ Decodeh – heuristically decode a string or text file. [2012-03-23]. (原始げんし内容ないようそん档于2008-01-08). 
  4. ^ Recode – GNU Project – Free Software Foundation (FSF). [2012-03-23]. (原始げんし内容ないようそん于2021-02-10). 
  5. ^ Utrac Homepage. [2006-05-12]. (原始げんし内容ないようそん于2021-01-25). 
  6. ^ Convmv – converts filenames from one encoding to another. [2012-03-23]. (原始げんし内容ないようそん于2018-06-11). 
  7. ^ Extremely Naive Charset Analyser. [2012-03-23]. (原始げんし内容ないようそん档于2010-12-04). 
  8. ^ Microsoft .NET Framework Class Library – Encoding.Convert Method. [2012-03-23]. (原始げんし内容ないようそん档于2012-04-21). 
  9. ^ MultiByteToWideChar/WideCharToMultiByte – Convert from ANSI to Unicode & Unicode to ANSI. [2012-03-23]. (原始げんし内容ないようそん于2015-02-12). 
  10. ^ Character Set Converter. [2012-03-23]. (原始げんし内容ないようそん档于2012-03-26). 
  11. ^ Extremely Naive Charset Analyser. [2012-03-23]. (原始げんし内容ないようそん档于2012-03-15). 

まいり

编辑

外部がいぶ链接

编辑