2016-08-15 1 views

ответ

1

Есть несколько способов, но они больше похожи на обходных пути. Вы можете преобразовать его в String, но его конструкторам по-прежнему нужен второй параметр, который является кодировкой. Строковые конструкторы не «обнаруживают», а скорее «используют» прошедшую кодировку.

Вы можете попробовать некоторые алгоритмы обнаружения кодирования, такие как mozilla's или jchardet.

This answer суммы хорошо, почему обнаружение кодировки из массива байтов неправильно:

Вы не можете определить кодировку произвольного потока байтов. Это характер кодировок. Кодировка означает сопоставление между байтом и его представлением. Поэтому каждая кодировка «может» быть правильной.

+0

Я полностью согласен. Вы должны попробовать и узнать кодировку от тех, кто хранит ее в базе данных. Если это невозможно по какой-либо причине, алгоритмы обнаружения кодирования - ваш лучший выбор. – OsaSoft

+0

Хорошо. Спасибо вам, ребята. Но эти два алгоритма будут работать в приложении grails? Или нужна интеграция с Groovy и Java-классом? –

+0

jchardet - это java lib, поэтому бесшовная интеграция с groovy. – Will

Смежные вопросы