Есть несколько способов, но они больше похожи на обходных пути. Вы можете преобразовать его в String, но его конструкторам по-прежнему нужен второй параметр, который является кодировкой. Строковые конструкторы не «обнаруживают», а скорее «используют» прошедшую кодировку.
Вы можете попробовать некоторые алгоритмы обнаружения кодирования, такие как mozilla's или jchardet.
This answer суммы хорошо, почему обнаружение кодировки из массива байтов неправильно:
Вы не можете определить кодировку произвольного потока байтов. Это характер кодировок. Кодировка означает сопоставление между байтом и его представлением. Поэтому каждая кодировка «может» быть правильной.
Я полностью согласен. Вы должны попробовать и узнать кодировку от тех, кто хранит ее в базе данных. Если это невозможно по какой-либо причине, алгоритмы обнаружения кодирования - ваш лучший выбор. – OsaSoft
Хорошо. Спасибо вам, ребята. Но эти два алгоритма будут работать в приложении grails? Или нужна интеграция с Groovy и Java-классом? –
jchardet - это java lib, поэтому бесшовная интеграция с groovy. – Will