Web インターフェイスに文字を入力するために使用されるバーコード スキャナーで、文字コードの問題が発生しています。
バーコードに - (ダッシュ/ハイフン/マイナス) などの記号が含まれている場合、多くの文字セットで正しい文字コード 189 が返されます。実際、スキャンを行うときにテキスト入力を選択すると、予想どおり - 文字が入力されます。ただし、グローバル ドキュメントから keypress または keyup イベントをインターセプトし、fromCharCode() 関数を使用して自分で文字列を作成すると、ブラウザに処理させるのではなく、もちろん 189 の Unicode 変換である ½ 文字を取得します。コード。
イベント自体では、keyCode と "which" の両方が 189 として表示されますが、keyIdentifier は "U+00BD" です。残念ながら、本当に必要な charCode 値は常に 0 です。
もちろん、この変換を手動で約 5 秒で処理できます。問題は、スキャナーから取得する可能性のあるコードの完全なセットがわからないことと、未処理の文字が数週間または数か月後に表示されて頭痛の種になることを心配していることです. または、生の文字コードをサーバーにアップロードして、PHP で処理することもできます。ただし、タイミングと応答性の理由から、クライアントで処理することをお勧めします。目に見えないテキスト入力に偽のキー押下を送信することもおそらく機能しますが、それは本当にハックな回避策です。
これを行うためのより良い方法があるはずであり、明らかな何かが欠けている必要があるようです。誰にもアイデアはありますか?