Męczę się z tym już jakiś czas, przekopałem sporo stron, testowałem różny kod i nigdy nie działało mi to w 100% tak jak powinno. Czy znacie jakiś sposób na wykrycie kodowania w pliku? A może używacie jakieś biblioteki do tego tupu rzeczy? Jest to problem z którym na pewno nie jeden z was się już zmierzył i cześć na pewno go przezwyciężyła dlatego liczę na jakąś pomoc.
Biorąc pod uwagę wszystkie możliwe kodowania: nie da się. Możesz spróbować minimum, czyli różne rodzaje Unikodu (16/32 po BOMach, jak nie to po zerach, UTF-8 po prostu sprawdzasz, czy się parsuje), plus resztę, z możliwością wyboru kodowania przez użytkownika. Dodatkowo można by ewentualnie dodać jakieś probabilistyczne metody do oceny, które kodowanie najlepiej opisuje dany plik (frekwencje liter itd.), ale może to pójść źle: .
Hmm to może powiem dokładniej, tworzę (jak pewnie nie jeden z nas) edytor stron www a więc potrzebuje kodowań ANSI, iso 8859-2, UTF 8 i UTF 8 (bez BOM) z zapisem sobie poradziłem tzn mam problem jeszcze z UTF 8 (bez BOM) ale to powinienem w końcu sam dojść do tego czemu tak się dzieje. Dlatego tez wypadało by aby przy wczytywaniu pliku było wiadome jakie jest kodowanie. Próbowałem m.in brania pierwszych bitów lub
StreamReader^ File = gcnew StreamReader("link");
Encoding^ = File->CurrentEncoding;
ale zawodziły. Zastanawiam się nawet nad przekopaniem kodu notepada++ lub firefoxa i wrzucenie tej klasy do dll`ki ale nie wiem czy jest w tym sens bo może się okazać że ten kod jest taki, że nie da się go tak po prostu przekopiować.