Я написал небольшой метод, что преобразует входящие строки в UTF-8 кодировке:Java IO: CharsetDecoder.decode() не работает должным образом на Linux
private String convertStringToUTF8(String pIncomingString) throws CharacterCodingException {
CharsetDecoder cd = Charset.availableCharsets().get("UTF-8").newDecoder();
CharBuffer buffer = cd.decode(ByteBuffer.wrap(pIncomingString.getBytes()));
return buffer.toString();
}
Это отлично работает на компьютере Windows, например - 'Scúp' заменяется на 'Scúp'. Однако при развертывании в Linux это не работает («Scúp» остается «Scúp»). Кто-нибудь знает, как решить эту досадную проблему в Linux?
Я мог ошибаться, но может быть, что система не может распечатать UTF-8, а не фактическую кодировку, которая является ошибочной? – ddmps
№ Приложение затем записывает в базу данных. В одном случае я получаю «º», в другом «ú». – adrift
UTF-8 - это кодировка от символов до байтов. Понятие «String», кодируемое UTF-8, не имеет никакого смысла. – erickson