Я подозреваю, что искажение данных происходит в запросе, т.е. заявленное кодирование запроса не соответствует тому, который на самом деле используется для данных.
, Что делает request.getCharacterEncoding()
возврат?
я действительно не знаю, как JavaScript обрабатывает кодировку или как заставить его использовать определенного.
необходимо удостовериться, что кодировка используется правильно на всех этапах - НЕ пытаются "зафиксировать" данные при помощи new String()
getBytes()
в точке, где они были уже закодированы неправильно.
Редактирование: Это может помочь иметь страницу источника (та с JavaScript) также закодированный в UTF-8 и объявило как таковой в его Типе контента. Тогда я полагаю, что JavaScript может принять значение по умолчанию к использованию UTF-8 для его запроса - но это не определенное знание, просто догадки.
Вы не можете прикреплять события DOM к вещам, отличным от объектов (элементов) DOM. Холст
- это элемент DOM, а не то, что вы рисуете на холсте. Они становятся частью холста в виде пикселей изображения.
Чтобы обнаружить щелчок в определенной точке на холсте, вы должны прикрепить событие щелчка к элементу холста, а затем сравнить координаты x / y событие click с координатами вашего холста.
На это был дан ответ: « Как мне получить координаты щелчка мыши по элементу холста? »