I can't help but notice that everyone seems to be missing the real issue: your data "corruption" appears to be an obvious character encoding problem. Therefore, no matter what you do with the data, you will be (mis)treating the symptom and ignoring the root cause.
To be specific, you appear to be attempting to interpret the received binary BYTES as ASCII text, when those BYTES were almost-certainly intended to represent text encoded as something-other-than-ASCII.
You should find out what character encoding applies to the string of text that you received. Then you should read that data while applying the appropriate character encoding transformations.
You should read Joel Spolsky's article that emphasizes that "There Ain't No Such Thing As Plain Text."