Кодовая страница 1252 отличается от ISO-Latin-1. Если вы хотите ISO-Latin-1, используйте Encoding.GetEncoding(28591)
. Однако я ожидаю, что они будут одинаковыми для этой кодовой точки (U + 00A5). UTF-7 совершенно другой (и почти никогда не тот, который вы хотите использовать).
Encoding.Default
является небезопасным - это действительно плохая идея в большинстве ситуаций. Это зависит от конкретного компьютера, на котором вы работаете. Если вы перенесли файл с одного компьютера на другой, кто знает, какую кодировку использовал исходный компьютер?
Если вы знаете, что ваш файл соответствует ISO-8859-1, тогда явно используйте его. Что производит эти файлы? Если они просто сохраняются пользователем, в какой программе они сохраняются? Если вариант UTF-8 - хороший вариант, отчасти потому, что он может справиться со всем Unicode.
У меня есть статья по Unicode и еще одна по отладка проблем Unicode , которая может оказаться полезной.