It works because unicode 0x0332 is a 'combining' underline. So the space character is underlined.
But the space is a little to short, so add a narrow space after - that is 0x2009
Alternatively you could have used full width low line 0xff3f, but it is a little long.
As I was testing, I realized that you could use 0x0332 for underlining letters on the fly.
I wish I had known that a long time ago.
Dim txt As String = "The Brown Fox Jumped Over the Lazy Dog"
Log(underlineWords(txt, Array As String("Fox", "Dog")))
'The Brown F̲o̲x̲ Jumped Over the Lazy D̲o̲g̲
Private Sub underlineWords(txt As String, underline() As String) As String
For Each t As String In underline
Dim sb As StringBuilder
sb.initialize
For i = 0 To t.Length - 1
sb.Append(t.CharAt(i)).Append(Chr(0x0332))
Next
txt = txt.replace(t , sb.toString)
Next
Return txt
End Sub