Как получить тип кодировки символов файла JSON?
Я пытаюсь получить тип кодировки символов строки json из jsoncpp: UTF-8, ANSI или UNICODE? Как получить тип кодировки символов json::value? Спасибо заранее!
2 ответа
Любая строка - это просто последовательность байтов, соответствующая, может быть, некоторым базовым правилам (нулевые терминаторы, запрещенные символы для json и т. Д.). Не существует волшебного способа определить, какая кодировка использовалась для формирования строки, потому что кодировка - это просто способ представления строковых двоичных данных. Поэтому кодировка строки json должна быть либо указана издателем json (возможно, в документации), либо информация о нем должна быть частью json (если по какой-то причине разные строки имеют разную кодировку).
Определение кодировки символов строки довольно сложно. Смотрите этот SO ответ для выбора правильного приложения.
Apache Tika - инструментарий анализа контента, возможно, один из самых передовых, согласно следующей цитате:
Набор инструментов Apache Tika™ обнаруживает и извлекает метаданные и текст из более чем тысячи различных типов файлов (таких как PPT, XLS и PDF). Все эти типы файлов могут быть проанализированы через единый интерфейс, что делает Tika полезной для индексации поисковой системы, анализа контента, перевода и многого другого. Вы можете найти последнюю версию на странице загрузки.
Анализ строки JSON может быть выполнен с каждой из этих библиотек, что дает (вероятный) CharSet, пригодный для дальнейшей обработки.