Я думаю, что вы видите ошибку, с которой я когда-то сталкивался. ISO-8859-1 на самом деле является подмножеством Windows-1152 (я думаю, что это 1152) для западноевропейских языков. Проблема в том, что браузеры с радостью отправляют символы Windows-1152, когда веб-сервер принимает ISO-8859-1. Это означает, что браузер отправляет данные, которые являются недействительными ISO-8859-1. По крайней мере, так случилось с моей установкой Windows. Я видел такое поведение как в IE, так и в Firefox.
У меня была проблема с редактором wysiwyg, куда пользователи вставляли данные из документа Word. Этот документ будет содержать как дефисы, так и тире. Один из персонажей будет представлен в порядке. Другой был бы мусором, потому что этот символ не существует в ISO-8859-1 (я никогда не могу вспомнить, какой есть какой).
Платформа .net, которую мы использовали, также не помогла, поскольку она не жаловалась на недопустимый символ ISO при преобразовании в юникод.