jeancroy / fuzz-aldrin-plus

Sublime text like fuzzy filtering - compatible with atom/fuzzaldrin
MIT License
269 stars 21 forks source link

Support for unicode uppercase/lowecase where length change. #10

Closed jeancroy closed 8 years ago

jeancroy commented 8 years ago

There is an assumption that character of upper and lower case string are in sync.

A typical example that break this assumption is ß 'LATIN SMALL LETTER SHARP S' (U+00DF)

Sharp s is unique among the letters of the Latin alphabet in that it has no traditional upper case form.

[1]

On chrome:

"Straße".toUpperCase() === "STRASSE" // note: 6 char to 7 char
"STRASSE".toLowerCase() === "strasse"

On Firefox & Edge:

"Straße".toUpperCase() === "STRAßE"
jeancroy commented 8 years ago

LATIN SMALL LIGATURE FL' (U+FB02)

"fl".toUpperCase() == "FL" // length 1 to length 2

Also this document. ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt