У меня проблема с кодом символа со сканером штрих-кода, используемым для ввода символов в веб-интерфейс.
Если штрих-код имеет такой символ, как - (тире/дефис/минус), он дает мне код 189 символов, который является правильным во многих наборах символов. Действительно, если у меня есть текстовый ввод, выбранный при выполнении сканирования, он будет вводить символ, как и ожидалось. Однако, если я перехватываю событие keypress или keyup из глобального документа и использую функцию fromCharCode() для сборки самой строки, вместо того, чтобы позволить браузеру обрабатывать ее, я получаю символ ½, который, конечно же, является преобразованием юникода в 189 код.
В самом случае оба keyCode и "which" отображаются как 189, а keyIdentifier - "U + 00BD". К сожалению, значение charCode, которое мне действительно нужно, всегда равно 0.
Теперь, конечно, я могу обработать это преобразование вручную примерно через 5 секунд. Проблема в том, что я не знаю полного набора кодов, которые я мог бы получить со сканера, и я беспокоюсь о необработанном персонаже, который показывает недели или месяцы в будущем и вызывает некоторые головные боли. В качестве альтернативы я мог бы загружать необработанные коды символов на сервер и пытаться обрабатывать его на PHP. Я бы предпочел обработать его на клиенте по причинам времени и отзывчивости. Отправка фальшивых нажатий клавиш на невидимый ввод текста, вероятно, тоже будет работать, но это действительно хакерское решение.
Кажется, должен быть лучший способ сделать это, и что я должен упустить что-то очевидное. У кого-нибудь есть идеи?