Возможно, вы захотите попробовать примерно так:
string broken = "Brokers México, Intermediario de Aseguro,S.A."; // Get text from database
byte[] encoded = Encoding.GetEncoding(28591).GetBytes(broken);
string corrected = Encoding.UTF8.GetString(encoded);
Это действительно зависит от того, как оно было вставлено - это предполагает, что что-то заняло байты UTF-8, интерпретируя их какстроку ISO-8859-1, а затем вставил эту строку в базу данных.По сути, код выполняет то же преобразование в обратном порядке.
Я не уверен в том, чтобы выяснить кодовую страницу - я бы угадал в ISO-8859-1 и UTF-8, чтобы начать си, если это не сработает, посмотрите на некоторые примеры неправильной и правильной версии.