Почему в java Character.toString ((char) 65533) печатает этот символ: ?
Поскольку именно этот конкретный символ IS связан с конкретным кодом . не отображает случайный символ, как вы думаете.
У меня есть Java-программа, которая печатает эти символы повсюду. Это большая программа. Любые идеи о том, что я могу сделать, чтобы избежать этого?
Ваша проблема лежит где-то еще. По крайней мере, сводится к тому, что вы должны установить каждый шаг , который включает byte
- char
преобразований (сохранение текста в файле / дБ, чтение текста из файла / дБ, манипулирование текстом, передача текста, отображение текста , и так далее) использовать UTF-8
.
Меня привлекает тот факт, что Java не делает абсолютно ничего особенного с 0xFFFD
, она просто заменяет непокрытые символы на вопросительный знак ?
и что вы продолжаете настаивать, что 0xFFFD
происходит из Java. Я знаю, что Firefox делает именно то, что вы сказали, так что вы, возможно, путаете «Firefox» с «Java»?
Если это так, и вы на самом деле говорите о веб-приложении Java, то вам нужно установить как минимум кодировку ответа HTTP на UTF-8
. Вы можете сделать это, поместив <%@ page pageEncoding="UTF-8" %>
в верхней части страницы JSP, о которой идет речь. эта статья может оказаться полезной для получения дополнительной справочной информации и подробного обзора всех шагов и решений, которые необходимо применить для решения этой "проблемы Unicode".