I just tried a special character on my system, and internal table had correct character.
This was seen in debug mode.
If the value is printed using WRITE statement, special character would be replaced by #.
Could you share more data on where hash is being seen?