Lowercasing depends on locale, so compare identifiers with a locale-independent fold
In Turkish, capital I lowercases to dotless ı, which breaks case-insensitive comparisons in Java and JavaScript unless the code uses a locale-independent fold.
Topic · 5 stories
5 stories tagged unicode on AI Tamer, newest first.
In Turkish, capital I lowercases to dotless ı, which breaks case-insensitive comparisons in Java and JavaScript unless the code uses a locale-independent fold.
Unicode lets you write é as one precomposed character or as an e plus a combining accent. The two look alike but differ in code points, and normalization gives them a single form.
The byte order mark is a signature that U+FEFF becomes at the start of a stream. Its exact bytes depend on the encoding, and whether to use one is the protocol's call.
Rust string ranges use UTF-8 byte offsets. Learn why a valid byte position can still be an invalid slice boundary, and when character iteration is insufficient for visible text.
A username can have equivalent encodings or resemble another name made from different characters. This explains what Unicode normalization and confusable detection each solve.