[LE-talk-ja 160] Re: LE-talk-ja での議論のまとめ

Back to archive index

NARUSE, Yui narus****@airem*****
2006年 5月 19日 (金) 08:21:26 JST


成瀬です。

Tomoyuki Asakawa wrote:
> あさかわ
> 
>>> そういう意味では、WindowsのAPIも酷い。
>> 標準なAPIを使った後、正規化のAPIを用いることになる 
>> かと思います。
> 
> 標準APIでカバーしてない文字は、捨てられてしまうので。その 
> あとでは、正規化不能です。

CP932→Unicodeに関して言えば、カバーしていない文字は存在しないはずです。

>> Transform Rule をちょろちょろと書けば言いだけの話に感じます。
>> 極端な話、s/\x{301C}/\x{FF5E}/gすればいいことですしね。
> 
> いや、そこへ来る前にすてられたらなにもできないのよ。
> 
> euc-jp-ms -> CP932で、X0212文字は捨てられる。
> すてられたら、ルール書こうにもかけないでしょ。

euc-jp-ms -> CP932 という変換それ自体が行うべきでない変換ですが、
さておき、その変換は正確ではないです。
eucJP-ms -> Unicode -> CP932 のはずでしょう。

> ただし、Transform Ruleが、入力側に働けば別ですけどね。
> この手の実装って、出力しかかんがえてないのではありませんか?
> 入力したら、すでに内部はUNICODEでしょ。
> 
> 入力に働けば
> euc-jp-ms上のX0212文字のうち、使用してるものだけ
> X0208エリアの未使用領域に振り分けて、読み込む
> 出力する時に、CP932上の外字領域に、再度変換する。
> なんてことができる。
Legacy Encoding -> Unicode では多対一変換は行われないので、
再変換は常に可能なはずです。

なお、legacy to legacyを一度に行うとfallbackができないというのは、
PerlのEncodeモジュールのfrom_to実装とかもそうですね。
Jcode.pmメーリングリストの
 [Jcode5 786] Re: Encodeの CHECK関係について
も同じ問題だと思いますが、
UnicodeによるUCS正規化が行われている文字コード変換においては、
legacy to legacy は decode & encode なので。

-- 
NARUSE, Yui  <narus****@airem*****>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA



Legacy-Encoding-talk-ja メーリングリストの案内
Back to archive index