String conversion from Symbol with Unicode does not yield a string, which is intended to be the same

The answer lies in unicode:

julia> "ȧ" |> collect
2-element Array{Char,1}:
 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
 '': Unicode U+0307 (category Mn: Mark, nonspacing)

julia> String(:ȧ) |> collect
1-element Array{Char,1}:
 'ȧ': Unicode U+0227 (category Ll: Letter, lowercase)

julia> String(Symbol("ȧ")) |> collect
2-element Array{Char,1}:
 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
 '': Unicode U+0307 (category Mn: Mark, nonspacing)

These two seemingly equivalent things are represented differently, though I cannot tell you why these entered like this differ. Presumably there’s some magic in the tab completion that simplifies/normalizes the representation to make it smaller?

2 Likes