rainit2006 / My_Windows

0 stars 0 forks source link

文字编码 #23

Open rainit2006 opened 6 years ago

rainit2006 commented 6 years ago
rainit2006 commented 6 years ago

ISO 2022 对于像中文,日文,韩文这样的文字,无法只用8位来表示所有的字符。ISO 2022提供了这样一种技术,它能在一种字符编码中支持多种字符集,可以用8位或16位来表示一个文字(字符),是一种变长的编码,这样,就能表示所有的上述东亚字符了。该编码还有个显著的特点,就是所有的字节都是以0开始(ASCII的0-127部分),有效位数是7,所以在网络传输中,可以只传7位。但同时出现了一个问题,如何区分哪些是ACSII部分的字符,哪些是东亚字符?

   ISO 2022用到的是标号(designations )和变换函数(shift functions)。 标号又称ESC序列(escape sequence),是一串以ASCII的ESC(ox1B)开头的字符串,特定的字符串指明所用的字符集。变换函数指明以何种方式解释接下来的字符,包括以何种字符集解释,解释多长的字节(接下来的两个字节或所有新的变换出现前的字节)。

http://euc.jp/i18n/charcode.ja.html C0領域にどの制御文字集合を割り当てるかを決定します。 これに対して、図形文字集合の割り当ては二段構えになっています。 インユーステーブルの他に、G0~G3という4個の中間バッファが設けてあり、 図形文字集合をいずれかの中間バッファに割り当て、 それからいずれかの中間バッファをGL領域に割り当てるという機構になっています。 図形文字集合を中間バッファに割り当てることを「指示する(to designate)」といい、 中間バッファをGL領域に割り当てることを「呼び出す(to invoke)」といいます。 指示はエスケープシーケンスによって、 また呼び出しは制御文字によって行われます。

指示と呼び出しは独立の機能ですので、 指示した後すぐに呼び出さなくてはならないということはありません。 また、すでにインユーステーブルに呼び出されている中間バッファに対して図形文字集合を指示すると、 改めて呼び出しをしなおさなくても、即座に指示がインユーステーブルに反映されることになっています。

image