From: usa@... Date: 2014-01-29T04:09:15+00:00 Subject: [ruby-dev:47924] [ruby-trunk - Bug #9415] Strings#codepoints doesn't respect BOM on UTF-{16, 32} pseudo encodings Issue #9415 has been updated by Usaku NAKAMURA. Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: REQUIRED to 1.9.3: REQUIRED, 2.0.0: REQUIRED, 2.1: REQUIRED ---------------------------------------- Bug #9415: Strings#codepoints doesn't respect BOM on UTF-{16,32} pseudo encodings https://bugs.ruby-lang.org/issues/9415#change-44677 * Author: Nobuyoshi Nakada * Status: Closed * Priority: Normal * Assignee: Yui NARUSE * Category: M17N * Target version: current: 2.2.0 * ruby -v: - * Backport: 1.9.3: REQUIRED, 2.0.0: REQUIRED, 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 ``` -- http://bugs.ruby-lang.org/