Я читаю файлы в различных форматах и на разных языках, и в настоящее время я использую небольшую библиотеку кодирования, чтобы попытаться определить правильную кодировку (http://www.codeproject.com/KB/recipes/DetectEncoding.aspx).
Это довольно хорошо, но иногда все равно не хватает. (Многоязычные файлы)
Большинство моих потенциальных пользователей плохо разбираются в кодировке (лучшее, на что я могу надеяться, это «что-то связанное с символами»), и вряд ли я смогу выбрать правильную кодировку в списке, поэтому я хотел бы позволить им циклически проходить по разным кодировкам, пока не будет найдена правильная, просто нажав на кнопку.
Проблемы с отображением? Нажмите здесь, чтобы попробовать другую кодировку! (Ну, в любом случае, это концепция)
Как лучше всего реализовать что-то подобное?
Редактировать: Похоже, я недостаточно ясно выразился. Под "циклическим перемещением по кодированию" я не имею в виду "как проходить по кодировкам?"
Что я имел в виду, «как позволить пользователю попробовать разные кодировки в последовательности без перезагрузки файла?»
Идея больше похожа на это: допустим, файл загружен с неверной кодировкой. Некоторые странные символы отображаются. Пользователь нажимает кнопку «Следующая кодировка» или «предыдущая кодировка», и строка будет преобразована в другую кодировку. Пользователь просто должен нажимать, пока не будет найдена правильная кодировка. (какая бы кодировка ни казалась хорошей для пользователя, она подойдет) Пока пользователь может нажимать «далее», у него есть разумный шанс решить свою проблему.
То, что я нашел до сих пор, включает преобразование строки в байты с использованием текущей кодировки, затем преобразование байтов в следующую кодировку, преобразование этих байтов в символы, затем преобразование символа в строку ... Выполнимо, но мне интересно если нет более простого способа сделать это.
Например, если был метод, который считывал бы строку и возвращал ее, используя другую кодировку, что-то вроде «render (string, encoding)».
Большое спасибо за ответы!