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