shellgei/shellgei160

UTF-32BE について

kariya-mitsuru opened this issue · 1 comments

単なるコメントも歓迎と言って頂けたので…

PDF 版 P.259 に

ただ、逆に高い桁から記録する場合、BOMが0000feffとなるのですが、上の出力のように、iconvはBOMを付けてくれません。

との記載があります。

この記載だと何となく iconv が不親切な印象を受けてしまうので、以下のような記載の方が望ましい気がしました。

ただ、逆に高い桁から記録する場合、BOMが付くとすれば0000feffとなるはずですが、上の出力のようにUTF-32BEではBOMは付きません。

仕様としてUTF-32BEにはBOMは存在せず、仮に先頭に0000feffが存在してしまうと本来の意味である zero width no-break space(ZWNBSP)と解釈されてしまいます(仕様にも明記されている)。

ちなみに、BOM 付き UTF-8(?)を iconvUTF-32 に変換してみたところ UTF-8 の先頭は ZWNBSP と解釈されるようで、先頭は 0000feff 0000feff になってしまうようです(これに関連した記載も仕様に記載されている)。

個人的には BOM 付き UTF-8 なるナゾなものは別のエンコーディングスキーム名を割り当てるべきだと思うんですけど…

ありがとうございます。調査不足でした。次の版で脚注を入れるかもしれません。READMEにこのissueのリンクを張りました。一旦クローズで。