Tem um cliente que tem um leitor Multilaser ga126 e somente no jTextField ele lê o conteúdo errado no codigo de barras, exemplo:
Codigo lido no bloco de notas: 7622210661593
codigo lido no jTextField do java: 7626♣1³♦0♣♣9'
Já configurei o leitor de varias formas diferentes, mas nada.
Tem alguma coisa que da fazer no Java pra corrigir esse problema?
Leitor de codigo de barras lê números errado no jTextFiel
20 Respostas
Como você está lendo o leitor?
Esse leitor usa o character-encoding UTF-8?
Se for, verifica se teu fonte Java também está em UTF-8.
Meu codigo está em UTF-8. Procurei no manual mas não o tipo de codificação.
O estranho é que uma 5 ou 6 lidas erradas, uma leitura sai com o codigo de barras certo
Como é o código que realiza a leitura?
Apenas crio um jTextField básico e faço a leitura, segue a foto de exemplo
Código @Jns_Vieira
Eu ainda não digitei nenhum código, eu apenas arrastei um jTextField para o frame usando a parte gráfica e executei, depois fiz a leitura do codigo de barras mas aparece isso conforme a imagem.
Mas o codigo que cria o jtextfield é este daqui: public javax.swing.JTextField jTextField1; mas acredito que seja irrelevante, pois já tentei criar via codigo, já testei em jtextArea, já testei em jComboBox, em jTable, só que todos leem o codigo do mesmo jeito
Vc precisa saber qual o encoding que o leitor usa para transmitir para o SO, pegar os dados crus na sua aplicação, recodificar para UTF-8 e então jogar dentro do campo de texto. O problema é que vc não pode simplesmente jogar os dados crus dentro de uma string, pois eles serão simplesmente convertidos para UTF-8, perdendo o sentido. Vc precisa lidar com o binário dos dados, provavelmente tendo que lidar com código nativo… Verifica com o fabricante se tem como alterar o encoding que o aparelho codifica… Não sei se vai ter muito sucesso pq essas marcas vagabundas só vendem lixo.
Suponhamos que o leitor seja ASCII, como eu faria essa conversão?
O que você entende por “faço a leitura”?
Você não lê esse código a partir de um InputStream que corresponde ao seu leitor de código de barras?
Esses leitores funcionam basicamente como teclados, simulando a digitação. Não precisa codificar nada na aplicação pra eles funcionarem.
Edit: @Jns_Vieira , confira também como o leitor está configurado, e se a leitura funciona em outro editor (ex: abra o bloco de notas e veja o que é lido). Revise as opções no manual.
Abraço.
Configurou seguindo as instruções do manual?
Qual o modo de saída?
Qual o idioma?
Sim, eu tô ligado, mas eles precisam estar configurados para isso.
Estou achando que talvez o leitor dele esteja configurado com um modo de saída diferente, ou outro idioma, por isso tá gerando um String diferente.
Não. Apenas coloco o cursor no campo, e leio código de barras, não uso nenhum código
“Leio o código de barras” seria pressionar o gatilho do leitor?
Acredito que o modo de saída do teu leitor está configurado errado.
No bloco de notas o leitor funciona normalmente. Somente nas aplicações Java que acontece isso. Já testei em outro PC. Já testei em uma aplicação do do governo que é feito em java e da o mesmo erro, inclusive no editor de códigos do netbeans apresenta o mesmo. Fiz várias configurações usando o manual
Isso mesmo preciono o gatilho.
No manual tem as configurações de idioma e já testei várias, inclusive eu já troquei o idioma do teclado no PC para inglês mas nada
Já tentou acionar o suporte da multilaser?
Talvez eles tenham um manual focado para desenvolvedores, com outras configurações.
Pior que já. E o manual que eles tem é o mesmo do site Enviaram, Enviaram minha pergunta para os técnicos e estou aguardando a resposta. Pediram também pra eu enviar o leitor pra ver se tem algum defeito.
Cara conseguiu resolver esse caso? To com o mesmo problema em uma aplicação em Java.
E sempre acontece com esses leitores xingling.

Bom dia!
Não consegui, o jeito foi trocar o leitor
Vlw, obrigado.