Метод charAt в Java возвращает Unicode-значение символа, а не его ASCII-код, потому что тип данных char, который используется в этом методе, способен представлять 16-битные символы Unicode, а ASCII является подмножеством Unicode и корректно представлен в этой системе. 4
Unicode занимается стандартизацией всех символов, существующих в мире, включая символы, смайлики, идеограммы и другие. 2 Для работы с международными символами, выходящими за границы ASCII, в Java есть функция Character.toChars, которая поддерживает весь диапазон значений Unicode. 4