~/talk

Lost in Transliteration: Why strlen("Dvořák") Returns 8

TalkinCzechat DevConf.CZ 2026 · on Thursday, 2026-06-18· at 10:15· E104 (capacity 72)· [linux-and-operating-systems]
slides:none on file

An exploration of character encodings and how C libraries handle them, starting with ASCII, code pages, and Unicode and then focusing on the C runtime behavior. It examines iconv and glibc’s gconv pipeline, explains why functions like strlen can give unexpected results (e.g., strlen("Dvořák") == 8) and why conversion flags like //IGNORE are inconsistent, and presents practical insights from the speaker’s experience as a glibc contributor.

AI-written summary · about

  1. 0:00Text encoding confusion
  2. 1:47strlen returns 8
  3. 2:58ASCII vs code pages
  4. 6:07Multibyte encoding issues
  5. 6:30Unicode solution
  6. 8:13Code points vs storage
  7. 10:24UTF-8 UTF-16 UTF-32
  8. 11:28C strings and bytes
  9. 13:57Wide chars and locales
  10. 15:23Encoding conversion
  11. 18:18Conversion fails
  12. 20:02Text processing impact
  13. 21:05Encodings needed
  14. 22:50ICU pipelines
  15. 23:54Encoding in 2026
  16. 25:17Turkish eye bug
  17. 26:23Unicode across languages
  18. 28:28Q&A
~/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.