Bug #5685

Oniguruma does not recognize U+30FC as Katakana

Added by Jani Patokallio over 2 years ago. Updated over 2 years ago.

[ruby-core:41386]
Status:Rejected
Priority:Normal
Assignee:-
Category:-
Target version:1.9.3
ruby -v:ruby 1.9.3dev (2011-09-23 revision 33323) [x86_64-darwin10.8.0] Backport:

Description

The character U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK (Japanese choonpu) belongs to the Unicode Katakana block (U+30A0-30FF), but it is not matched by /\p{Katakana}/. Demonstration:

"私のホバークラフトは鰻でいっぱいです".gsub(/(\p{Katakana}|\p{Hiragana}|\p{Han})+/, 'X')
=> "XーX"

In other words, all kana and kanji in that string except U+30FC are matched. And it really is 30FC/12540:

"私のホバークラフトは鰻でいっぱいです".gsub(/(\p{Katakana}|\p{Hiragana}|\p{Han})+/, '').unpack("U*")
=> [12540]

Also occurs in Ruby 1.8 with the Oniguruma library.

History

#1 Updated by Yui NARUSE over 2 years ago

  • Status changed from Open to Rejected

\p{Katakana} refers Script=Katakana, not Block=Katakana.
So current behavior is correct.

See also
http://unicode.org/reports/tr18/
http://www.unicode.org/Public/UNIDATA/Scripts.txt
http://perldoc.perl.org/perluniprops.html

Also available in: Atom PDF