Я новичок в файлах, потоках и различных кодовых страницах. Видите, это моя проблема:
Я получаю текстовые файлы, и некоторые из них были созданы с кодовой страницей Windows-1252, некоторые все еще IBM850, а иногда они UTF8. Когда я импортирую их, моя база данных показывает все виды символов для ä, ö, ü, ß, потому что я читаю их с неправильной кодовой страницей. только когда я импортирую их с правильной кодовой страницей, все работает нормально.
Вот что, по-я думал, было бы хорошим подходом:
Преобразовать ä, ö, ü, ß в массив байтов с кодовой страницей X
eg:
byte[] myAeKl = Encoding.GetEncoding("IBM850").GetBytes("ä");
byte[] myAeGr = Encoding.GetEncoding("IBM850").GetBytes("Ä");
пройдитесь по текстовым файлам и сравните каждый массив байтов букв с приведенными выше. Если обнаружено, что используется эта кодовая страница, в противном случае попробуйте использовать другую кодовую страницу.
Вот чего я не понимаю: Как я могу сравнить байты из букв в текстовом файле с массивами байтов букв, которые я ищу. Например:
if (Textfile.Letter == myAeKl || Textfile.Letter == myAeGr)
...
Есть ли другой способ получить правильную кодовую страницу? Имею ли я право на упрек в решении?