Bug #12204
closedInvalid range of capital letters at Greek alphabet
Description
Greek alphabet's first and last letter is:
- α - ω (lower case)
- Α - Ω (upper case)
So if we write on a ruby console the following script, we get:
('α'..'ω').to_a
=> ["α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "ς", "σ", "τ", "υ", "φ", "χ", "ψ", "ω"]
which is correct, we get all 24 lower case characters of the greek alphabet, and a "special one", the letter "ς" which HAS NO EQUIVALENT uppercase letter. TOTAL: 25 characters
Now if we try to run the above script with upper case characters...
('Α'..'Ω').to_a
=> ["Α", "Β", "Γ", "Δ", "Ε", "Ζ", "Η", "Θ", "Ι", "Κ", "Λ", "Μ", "Ν", "Ξ", "Ο", "Π", "Ρ"]
we only get 17 characters. The rest 7 upper case characters are missing! Those are (["Σ", "Τ", "Υ", "Φ", "Χ", "Ψ", "Ω"])
Now if we try to "construct" the greek alphabet by using the UTF-8 equivalent number of its chatacter, we get the following:
(913..937).map { |char| char.chr('UTF-8') }
=> ["Α", "Β", "Γ", "Δ", "Ε", "Ζ", "Η", "Θ", "Ι", "Κ", "Λ", "Μ", "Ν", "Ξ", "Ο", "Π", "Ρ", "\u03A2", "Σ", "Τ", "Υ", "Φ", "Χ", "Ψ", "Ω"]
Note the invalid character "\u03A2" between letters "Ρ" and "Σ".
I believe that the problem is the letter "ς" (greek sigma) which has no upper case equivalent. Ruby throws an exception at this point and never returns the rest of the characters.
[[http://www.fileformat.info/info/unicode/char/03a2/index.htm]]