Unicode Case

toUpperCase / toLowerCase are the Unicode Default Case Conversion, as in Node: simple mappings on every plane, the SpecialCasing expansions (a single character can become two or three), and the context-sensitive final sigma.

console.log("ß".toUpperCase());              // SS
console.log("İ".toLowerCase() === "i̇"); // true  (i + combining dot above)
console.log("fi".toUpperCase());              // FI
console.log("ʼn".toUpperCase());              // ʼN
console.log("ΟΔΥΣΣΕΥΣ".toLowerCase());        // οδυσσευς  (final ς, medial σ)
console.log("dž".toUpperCase(), "DŽ".toLowerCase()); // DŽ dž
console.log("straße".toUpperCase());         // STRASSE
console.log("𐐀𐐨".toLowerCase());             // 𐐨𐐨  (Deseret, outside the BMP)
console.log("ⓐ".toUpperCase(), "Ⅷ".toLowerCase()); // Ⓐ ⅷ
View source on GitHubexamples/strings/unicode_case.ts