<html xmlns="http://www.w3.org/1999/xhtml" a0:Name="SuikaWiki" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:Version="0.9"><head></head><body><p><a0:anchor-end a0:anchor="12">[12]</a0:anchor-end> <a0:anchor>GNUEmacs</a0:anchor> と <a0:anchor>XEmacs</a0:anchor> で内部コードがだいぶ異なります...</p><section><h1>Mule2 / GNU Emacs の内部コード</h1><p><a0:anchor-end a0:anchor="16">[16]</a0:anchor-end><table><tbody><tr><td>%x00-7F</td><td>Type 1-1</td><td>ASCII</td></tr><tr><td>%x80 ..</td><td>Type N</td><td>合成文字</td></tr><tr><td>%x80 ..</td><td>Emacs 21</td><td>eight-bit-graphic</td></tr><tr><td>%x81-8F C1</td><td>Type 1-2</td><td>1バイト集合</td></tr><tr><td>%x90-99 C21 C22</td><td>Type 2-3</td><td>2バイト集合</td></tr><tr><td>%x9A %xA0-DF C1</td><td>Type 1-3</td><td>1バイト集合 (1桁)</td></tr><tr><td>%x9B %xE0-EF C1</td><td>Type 1-3</td><td>1バイト集合 (2桁)</td></tr><tr><td>%x9C %xF0-F4 C21 C22</td><td>Type 2-4</td><td>2バイト集合 (1桁)</td></tr><tr><td>%x9D %xF5-FE C21 C22</td><td>Type 2-4</td><td>2バイト集合 (2桁)</td></tr><tr><td>%x9E %xFF? ?</td><td>Type 3-4</td><td>3バイト集合 (CNS 11643 = 未実装)</td></tr><tr><td>%x9E ..</td><td>Emacs 21</td><td>eight-bit-control</td></tr><tr><td>%x9F</td><td></td><td>(lc-invalid)</td></tr></tbody></table></p><p><a0:anchor-end a0:anchor="13">[13]</a0:anchor-end> GNU Emacs 22? からは UTF-8 base になるみたいです。
(<a0:anchor>マーくん</a0:anchor>が、まだ UTF-8 base になってないのは Emacs
だけだよ, ママ〜ってうるさいよねぇ。)</p></section><section><h1>XEmacs の内部コード</h1><p><a0:anchor-end a0:anchor="15">[15]</a0:anchor-end> XEmacs 21 の src/mule-charset.h の注釈より。</p><table><tbody><tr><td>%x00-7F</td><td>ASCII</td></tr><tr><td>%x80 ..</td><td>Composite</td></tr><tr><td>%x81-8D C1</td><td>Dimension-1 Official</td></tr><tr><td>%x8E C1</td><td>free (ASCII)</td></tr><tr><td>%x8F %xA0-BF</td><td>Control-1</td></tr><tr><td>%x90-99 C21 C22</td><td>Dimension-2 Official</td></tr><tr><td>%x9A-9D</td><td>free</td></tr><tr><td>%x9E %xA0-EF C1</td><td>Dimension-1 Private</td></tr><tr><td>%x9F %xF0-FF C21 C22</td><td>Dimension-2 Private</td></tr></tbody></table><ul><li><a0:anchor-end a0:anchor="2">[2]</a0:anchor-end> C1 = C</li><li><a0:anchor-end a0:anchor="3">[3]</a0:anchor-end> C21 = C</li><li><a0:anchor-end a0:anchor="4">[4]</a0:anchor-end> C22 = C</li></ul><p><a0:anchor-end a0:anchor="14">[14]</a0:anchor-end> XEmacs <a0:anchor>UTF-2000</a0:anchor> では内部コードが <a0:anchor>UTF-8</a0:anchor>
的だったりします。</p><p><a0:anchor-end a0:anchor="19">[19]</a0:anchor-end> <a0:anchor>PostgreSQL</a0:anchor> も対応しています。</p><p><a0:anchor-end a0:anchor="18">[18]</a0:anchor-end> <cite>PostgreSQL Source Code: src/include/mb/pg_wchar.h Source File</cite>, <time>2022-04-30T00:13:22.000Z</time>, <time>2022-04-30T05:32:50.013Z</time> <a0:anchor-external a0:resScheme="URI" a0:resParameter="https://doxygen.postgresql.org/pg__wchar_8h_source.html">https://doxygen.postgresql.org/pg__wchar_8h_source.html</a0:anchor-external></p></section><section><h1>合成文字</h1><p><a0:sw-see> <a0:anchor>文字合成</a0:anchor>, <a0:anchor>私用制御機能</a0:anchor> </a0:sw-see></p><section><h1>Mule 2 での合成文字</h1><ul><li><a0:anchor-end a0:anchor="6">[6]</a0:anchor-end> Type-N = LCCMP 1*(LCN 1*C)</li><li><a0:anchor-end a0:anchor="8">[8]</a0:anchor-end> LCCMP = %x80</li><li><a0:anchor-end a0:anchor="9">[9]</a0:anchor-end> LCN = %xA1-BF ;; LC + 0x20</li><li><a0:anchor-end a0:anchor="7">[7]</a0:anchor-end> C = %xA0-FF
<a0:form ref="comment"></a0:form></li></ul></section></section><section><h1>Leading byte</h1><p><a0:anchor-end a0:anchor="5">[5]</a0:anchor-end> 最初のオクテット (または %x9A-9F の次のオクテット) は
leading byte と呼びます。</p><table><tbody><tr><td colspan="2">LC</td><td>GNU Emacs 20/21</td><td>XEmacs 21</td></tr><tr><td>0x80</td><td>128</td><td colspan="2">Composite</td></tr><tr><td>0x81</td><td>129</td><td colspan="2">ISO/IEC 8859-1</td></tr><tr><td>0x82</td><td>130</td><td colspan="2">ISO/IEC 8859-2</td></tr><tr><td>0x83</td><td>131</td><td colspan="2">ISO/IEC 8859-3</td></tr><tr><td>0x84</td><td>132</td><td colspan="2">ISO/IEC 8859-4</td></tr><tr><td>0x85</td><td>133</td><td colspan="2">TIS 620-2533</td></tr><tr><td>0x86</td><td>134</td><td colspan="2">ISO/IEC 8859-7</td></tr><tr><td>0x87</td><td>135</td><td colspan="2">ISO/IEC 8859-6</td></tr><tr><td>0x88</td><td>136</td><td colspan="2">ISO/IEC 8859-8</td></tr><tr><td>0x89</td><td>137</td><td colspan="2">JIS X 0201-1976 Katakana</td></tr><tr><td>0x8A</td><td>138</td><td colspan="2">JIS X 0201-1976 Roman</td></tr><tr><td>0x8B</td><td>139</td><td></td><td>ISO/IEC 8859-5</td></tr><tr><td>0x8C</td><td>140</td><td>ISO/IEC 8859-5</td><td>ISO/IEC 8859-9</td></tr><tr><td>0x8D</td><td>141</td><td>ISO/IEC 8859-9</td><td>unused</td></tr><tr><td>0x8E</td><td>142</td><td></td><td>(ASCII)</td></tr><tr><td>0x8F</td><td>143</td><td></td><td>Control-1</td></tr><tr><td>0x90</td><td>144</td><td colspan="2">JIS X 0208-1978</td></tr><tr><td>0x91</td><td>145</td><td colspan="2">GB 2312-80</td></tr><tr><td>0x92</td><td>146</td><td colspan="2">JIS X 0208-1983</td></tr><tr><td>0x93</td><td>147</td><td colspan="2">KS C 5601-1987</td></tr><tr><td>0x94</td><td>148</td><td colspan="2">JIS X 0212-1990</td></tr><tr><td>0x95</td><td>149</td><td colspan="2">CNS 11643 plane 1</td></tr><tr><td>0x96</td><td>150</td><td colspan="2">CNS 11643 plane 2</td></tr><tr><td>0x97</td><td>151</td><td>CNS 11643 plane 14 (Mule2)</td><td></td></tr><tr><td>0x97</td><td>151</td><td>JIS X 0213 plane 1</td><td>Big5 Level 1</td></tr><tr><td>0x98</td><td>152</td><td>big5-1</td><td>Big5 Level 2</td></tr><tr><td>0x99</td><td>153</td><td>big5-2</td><td>unused</td></tr><tr><td>0x9A</td><td>154</td><td>1-byte private (1桁)</td><td>unused</td></tr><tr><td>0x9B</td><td>155</td><td>1-byte private (2桁)</td><td>unused</td></tr><tr><td>0x9C</td><td>156</td><td>2-byte private (1桁)</td><td>unused</td></tr><tr><td>0x9D</td><td>157</td><td>2-byte private (2桁)</td><td>unused</td></tr><tr><td>0x9E</td><td>158</td><td>(CNS 11643)</td><td>1byte private</td></tr><tr><td>0x9F</td><td>159</td><td></td><td>2byte private</td></tr><tr><td>0xA0</td><td>160</td><td>chinese-sisheng</td></tr><tr><td>0xA1</td><td>161</td><td>ipa</td></tr><tr><td>0xA2</td><td>162</td><td>viscii-lower</td></tr><tr><td>0xA3</td><td>163</td><td>viscii-upper</td></tr><tr><td>0xA4</td><td>164</td><td>arabic-digit</td></tr><tr><td>0xA5</td><td>165</td><td>arabic-1-column</td></tr><tr><td>0xA6</td><td>166</td><td>ascii-right-to-left</td></tr><tr><td>0xA7</td><td>167</td><td>lao</td></tr><tr><td>0xA8</td><td>168</td><td></td></tr><tr><td>0xA9</td><td>169</td><td></td></tr><tr><td>0xAA</td><td>170</td><td></td></tr><tr><td>0xAB</td><td>171</td><td></td></tr><tr><td>0xE0</td><td>224</td><td>arabic-2-column</td></tr><tr><td>0xE1</td><td>225</td><td>IS 13194</td></tr><tr><td>0xF0</td><td>240</td><td>indian-1-column</td></tr><tr><td>0xF1</td><td>241</td><td>tibetan-1-column</td></tr><tr><td>0xF2</td><td>242</td><td>mule-unicode-2500-33ff</td></tr><tr><td>0xF3</td><td>243</td><td>mule-unicode-e000-ffff</td></tr><tr><td>0xF4</td><td>244</td><td>mule-unicode-0100-24ff</td></tr><tr><td>0xF5</td><td>245</td><td>ethiopic</td></tr><tr><td>0xF6</td><td>246</td><td>CNS 11643 plane 3</td></tr><tr><td>0xF7</td><td>247</td><td>CNS 11643 plane 4</td></tr><tr><td>0xF8</td><td>248</td><td>CNS 11643 plane 5</td></tr><tr><td>0xF9</td><td>249</td><td>CNS 11643 plane 6</td></tr><tr><td>0xFA</td><td>250</td><td>CNS 11643 plane 7</td></tr><tr><td>0xFB</td><td>251</td><td>indian-2-column</td></tr><tr><td>0xFC</td><td>252</td><td>tibetan</td></tr><tr><td>0xFD</td><td>253</td><td></td></tr><tr><td>0xFE</td><td>254</td><td>JIS X 0213 plane 2</td></tr><tr><td>0xFF</td><td>255</td><td>(CNS 11643 (Mule2))</td></tr></tbody></table></section><section><h1>文字表現</h1><p><a0:anchor-end a0:anchor="11">[11]</a0:anchor-end> 内部表現にはまた別の19ビットのものを使います。</p></section><section><h1>関連</h1><p><a0:sw-see> <a0:anchor>Emacsにおける文字コード</a0:anchor> </a0:sw-see></p></section><section><h1>メモ</h1><ul><li><a0:anchor-end a0:anchor="10">[10]</a0:anchor-end> 詳しくは src/mule-charset.h に説明があります。</li><li><a0:anchor-end a0:anchor="1">[1]</a0:anchor-end> 今から見ればちょっと設計の悪い符号ですね。設計後に何度か未使用の部分を修正しましたし。まあ仕方無いといえば仕方無い。</li><li><a0:anchor-end a0:anchor="17">[17]</a0:anchor-end> 昔からたまに、<a0:anchor>メイル</a0:anchor>や<a0:anchor>ニュース</a0:anchor>でうっかり Mule 内部符号で送ってしまう人っているんですよねぇ。 (そんなので遅れるようになってる <a0:anchor>MUA</a0:anchor> もどうかと思うけど。)</li></ul><p><a0:anchor-end a0:anchor="20">[20]</a0:anchor-end> <cite xml:lang="en">src/coding.c · master · emacs / emacs · GitLab</cite>, <time>2022-04-30T05:46:05.000Z</time> <a0:anchor-external a0:resScheme="URI" a0:resParameter="https://emba.gnu.org/emacs/emacs/-/blob/master/src/coding.c#L1753">https://emba.gnu.org/emacs/emacs/-/blob/master/src/coding.c#L1753</a0:anchor-external></p><p><a0:anchor-end a0:anchor="21">[21]</a0:anchor-end> <cite>Symposium on Multilingual Information Processing at ETL (25-26/3/96)</cite>, <time>2023-08-05T13:41:39.000Z</time>, <time>2004-04-14T06:03:39.936Z</time> <a0:anchor-external a0:resScheme="URI" a0:resParameter="https://web.archive.org/web/20040414060036/http://www.m17n.org/mule/JAPANESE/gniibe.html">https://web.archive.org/web/20040414060036/http://www.m17n.org/mule/JAPANESE/gniibe.html</a0:anchor-external></p><blockquote><p>(7) Werner Lemberg (Austria)</p><p>* CJK TeX (韓国語, 日本語, 中国語が使える LaTeX のマクロパッケージ)に ついてその実現についての発表。</p><p>* JTeX, JLaTeX などと異なり, 普通の TeX から使うマクロパッケージとして の実現である。</p><p>* Mule の encoding を用いている。</p><p>%コメント% どうも Mule の leading character を TeX の active character に map することでフォントの切替を行なっているらしい。 </p></blockquote></section></body></html>