我在使用用于将字符输入到 Web 界面的条码扫描仪时遇到字符代码问题。
如果条形码具有诸如 - (破折号/连字符/减号)之类的符号,它会给我字符代码 189,这在许多字符集中都是正确的。事实上,如果我在扫描时选择了文本输入,它将按预期输入 - 字符。但是,如果我从全局文档中截取 keypress 或 keyup 事件并使用 fromCharCode() 函数自己构建字符串,而不是让浏览器处理它,我会得到 ½ 字符,这当然是 189 的 unicode 转换代码。
在事件本身中,keyCode 和“which”都显示为 189,而 keyIdentifier 是“U+00BD”。不幸的是,我真正需要的 charCode 值始终为 0。
现在我当然可以在大约 5 秒内手动处理这个转换。问题是我不知道可能从扫描仪获得的完整代码集,而且我担心未处理的字符会在未来数周或数月后出现并让人头疼。或者,我可以将原始字符代码上传到服务器并尝试在 PHP 中处理它。不过,出于时间和响应性的原因,我更愿意在客户端处理它。将假按键发送到不可见的文本输入可能也可以,但这是一个非常棘手的解决方法。
似乎应该有更好的方法来做到这一点,而且我必须遗漏一些明显的东西。有没有人有任何想法?