Actions
Bug #18149
closedCan't match against strings with special codes within
Description
This can be summed up by the following example:
"\xFF".match /\\x/
#=> (irb):6:in `match': invalid byte sequence in UTF-8 (ArgumentError)
Updated by jeremyevans0 (Jeremy Evans) about 2 years ago
- Status changed from Open to Rejected
That's because that is an invalid byte sequence, at least if the string's encoding is UTF-8. If the string's encoding is not UTF-8, it works fine:
$ ruby -e 'p "\xFF".encoding'
#<Encoding:ASCII-8BIT>
$ ruby -Ku -e 'p "\xFF".encoding'
#<Encoding:UTF-8>
$ ruby -e 'p "\xFF".match(/\\x/)'
nil
$ ruby -Ku -e 'p "\xFF".match(/\\x/)'
-e:1:in `match': invalid byte sequence in UTF-8 (ArgumentError)
from -e:1:in `match'
from -e:1:in `<main>'
You can force the string encoding to binary to avoid the ArgumentError:
$ ruby -Ku -e 'p "\xFF".b.match(/\\x/)'
nil
So I don't think this is a bug, I believe the behavior is expected.
Updated by chucke (Tiago Cardoso) about 2 years ago
Thx for the reply. I think that's reasonable.
Actions
Like0
Like0Like0