What you see in Chrome is UTF-8 encoded data misinterpreted as ISO-8859-1 or windows-1252 encoded. For example, U+00BF “¿” is 0xC2 0xBF in UTF-8. Treating that as ISO-8859-1 data, you get U+00C2 “” U+00BF “¿”.
From the given data, it is impossible to say what goes wrong. My guess is that the data is sent with an HTTP Content-Type
header that declares the encoding as ISO-8859-1. The URL would be needed to verify this hypothesis.
The character “�” indicates a data error at the character level: the data contains a byte that does not denote any character, or part of a multi-byte representation of a character, in the character encoding being applied. This is most often encountered when ISO-8859-1 is being misinterpreted as UTF-8 encoded.
It seems that the data contains a mix of UTF-8 encoded data and ISO-8859-1 encoded data. The fix is to modify the system so that it consistently uses UTF-8 throughout, or at least converts everything to UTF-8 when data is being composed to be sent to a user agent.