I think what it does is transform the two byte encoding smdh uses into a single char to use the ascii font HBL was designed for, so special characters are either split into two or just asing some values to not supported characters
I'd input a unicode string into unicodeToChar() and see what the ouput looks like, but it's most likely disposing of two byte characters and converting them to single byte, so for smdh you should disable it since your font engine can handle unicode? Or was it UTF?
But you are using utf-8 I think, so for smdh files you should write you own unicodeToUTF8 function (unicodeToChar is also used to get the file paths for homebrew, so that should remain unchanged).
Hope something of this helps