チケット #9415 が Nobuyoshi N. によって報告されました。
Bug #9415: Strings#codepoints doesn’t respect BOM on UTF-{16,32} pseudo
encodings
- 作成者: Nobuyoshi N.
- ステータス: Open
- 優先度: Normal
- 担当者: Yui NARUSE
- カテゴリ: M17N
- 対象バージョン: current: 2.2.0
- ruby -v: r44601
- Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: REQUIRED
String#codepoints
がUTF-16
、UTF-32
でのBOMを考慮していません。
$ ruby -e 'puts "%x" %
"\u{feff}".encode("UTF-16BE").force_encoding("UTF-16").codepoints'
feff
$ ruby -e 'puts "%x" %
"\u{feff}".encode("UTF-16LE").force_encoding("UTF-16").codepoints'
fffe
String#ord
なども同様です。
$ ruby -e 'printf "%x\n",
"\u{feff}".encode("UTF-16BE").force_encoding("UTF-16").ord'
feff
$ ruby -e 'printf "%x\n",
"\u{feff}".encode("UTF-16LE").force_encoding("UTF-16").ord'
fffe