TextLayout: Determine which character was clicked on?

I have a component that creates a TextLayout from a string and the draws it. The user may then click on a word, how can I go from an x,y position to find an index in the original string? I see I can get the bounds for each Line. But then for each line the glyphs are in a run, and don’t seem to map back to characters. Is it safe to assume there is a 1:1 mapping between characters and glyphs? (With unicode, I wouldn’t think so)

As a chronic sufferer of lacking UTF support across apps and the web due to my name - Joël - the answer is no.

A non-facetious and more technical answer is still no, in that outside of ASCII, you could be presented with all sorts of textual data. It really depends on your UX. The absolute worst/most limiting case is that all of your labels and text editors filter out everything non-ASCII, but that’s kind of weird and heavy handed.