Your strings differ on Unicode Normalization (demonstrated merely for relevant characters):
Form String Unicode Length
---- ------ ------- ------
(raw) à à \u00e0 \u0061\u0300 4
FormC à à \u00e0 \u00e0 3
FormD à à \u0061\u0300 \u0061\u0300 5
FormKC à à \u00e0 \u00e0 3
FormKD à à \u0061\u0300 \u0061\u0300 5
The former string is
T
(U+0054, Latin Capital Letter T)
h
(U+0068, Latin Small Letter H)
à
(U+00E0, Latin Small Letter A With Grave)
n
(U+006E, Latin Small Letter N)
h
(U+0068, Latin Small Letter H)
while the latter one is
T
(U+0054, Latin Capital Letter T)
h
(U+0068, Latin Small Letter H)
a
(U+0061, Latin Small Letter A)
̀
(U+0300, Combining Grave Accent)
n
(U+006E, Latin Small Letter N)
h
(U+0068, Latin Small Letter H)
You invoke a mojibake case (example in Python for its universal intelligibility):
print('Thành\nThành'.encode('utf-8').decode('cp1252'))
Thà nh
Thành