From: Yui NARUSE Date: 2009-08-19T01:10:38+09:00 Subject: [ruby-dev:39111] [Feature #1951] openのBOM指定拡張 チケット #1951 が更新されました。 (by Yui NARUSE) Target version 1.9.2にセット 記述が正確でないという指摘を受けたので訂正します。 現状の機能は、 「BOMに従ってencodingを設定するが、BOMがない場合のデフォルト値を指定できる」 というものですが、現状の指定方法である「UTF-*-BOM」から見て直観的ではありません。 ゆえに、「BOM|UTF-*」と変更する案です。 念のため、「BOM|UTF-*」の動作をおさらいしますと、 冒頭にU+FEFFがあった場合、これをBOMとみなし、それに基づきencodingを設定します。 この場合は冒頭のU+FEFFはBOMなのですから、これを読み込んだStringには含めません。 冒頭にU+FEFFがなかった場合、後半のUTF-*をencodingとして設定します。 一方で、「UTF-*-BOM」に対しては、encodingがUTF-*でかつ、冒頭のU+FEFFはBOMであるという指定です。 この場合も、冒頭のU+FEFFはBOMなのですから、これを読み込んだStringには含めません。 読み込んだBOMや文字列が指定のencodingと矛盾した場合は例外が上がります。 冒頭にU+FEFFがなかった場合は、普通のUTF-*と動作が変わりません。 ちなみに、普通の「UTF-*」だった場合は、冒頭にU+FEFFがあった場合、これをZWNBSPとみなし保持します。 なかった場合は無論何も起きません。 ---------------------------------------- http://redmine.ruby-lang.org/issues/show/1951 ---------------------------------------- http://redmine.ruby-lang.org