Кто-нибудь знает, есть ли простой способ обнаружить кодировку набора символов в Java? Мне кажется, что некоторые программы имеют возможность определять, какой символ задает данный фрагмент данных, или, по крайней мере, сделать аппроксимацию.Как определить кодировку набора символов в Java?
Я полагаю, что основной механизм должен был бы декодировать данные в каждом наборе символов и выбирать в зависимости от того, какой из них имеет наименьшие неопределенные символы, за которыми следует набор символов, более общий для разрыва связи.
Любые идеи?
В чем мы говорим? Байт-массив (двоичный) или массив символов (String)? Какие из них вы хотели бы отличить тогда? Это может быть сделано только для кодировок Unicode (с байтовыми байтами), но не для надежности других. – BalusC
Это может быть сложно. На этом сайте pfarland использует некоторые эвристики: http://forums.sun.com/thread.jspa?threadID=279203#3 – mre
Связанные темы: http://stackoverflow.com/questions/499010/java-how-to -determine-the-correct-charset-encoding-of-a-stream и http://stackoverflow.com/questions/1888189/java-readers-and-encodings – BalusC