In code you should escape the unicode characters using '\u' + the hexadecimal value of the character.
For example, I could write the following xaml:
<Grid x:Class="Testing.UnicodeTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="" FontFamily="Fonts/#Font Awesome 5 Free" FontSize="40" FontWeight="Bold"/>
<TextBlock Text="{Binding Unicode}" FontFamily="Fonts/#Font Awesome 5 Free" FontSize="40" FontWeight="Bold"/>
</StackPanel>
</Grid>
And in code expose a Unicode property in the ViewModel initilized as:
_unicode = "\xEF\x80\xA7"; // UTF-8 representation of \uF027
That will render the
volume-down for both texts.
From the images you attached it seems that it is not finding the glyph in the supplied font, and is using our internal fallback font that renders the ? for not found glyphs.