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