~/talk

How a Single ß Can Break Everything

Talkat droidcon Berlin 2025 · 2025-09-24..09-26· [android]
links:none on file
slides:none on file

Shows a real bug: username length capped at 30 breaks when emojis and modifiers expand code units and initials generation picks the wrong substring. Explains UTF‑8 vs UTF‑16, Android strings stored as UTF‑16 so astral characters use surrogate pairs and a rocket counts as two code units, a family emoji can be 11 UTF-16 code units. Recommends Android.icu.text.BreakIterator getCharacterInstance to count grapheme clusters, avoid naive regex, and warns about case rules like sharp S → "SS" that change length so an uppercase transform can crash UI limits.

AI-written summary · about

  1. 0:00Introduction
  2. 1:02Username profile picture problem
  3. 2:50Emojis break text
  4. 3:10Unicode history
  5. 4:15Pre-Unicode chaos
  6. 5:39Unicode code points
  7. 6:45UTF-8 vs UTF-16
  8. 7:49Why UTF-8 dominates
  9. 9:35UTF-16 in Android
  10. 10:59Early decisions impact
  11. 12:23Emoji storage
  12. 13:28Unicode planes
  13. 14:52Text normalization
  14. 16:16Graphic clusters mystery
  15. 17:42Hidden Unicode pitfalls
  16. 18:05Emoji modifiers
  17. 19:50Counting clusters on Android
  18. 20:34Regex fails on Unicode
  19. 21:39Unicode properties
  20. 22:01Fixing profile initials
  21. 22:47Sharp S case mapping
  22. 24:55More case mapping surprises
  23. 25:39Zalgo text abuse
  24. 26:21Unicode bugs
  25. 26:42Real-world Unicode bugs
  26. 27:03Conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.