Log打印的字符串与使用Toast方法显示的字符串不同

问题描述 投票:0回答:1

我想从条形码阅读器中获取字符串。就我而言,我有霍尼韦尔条形码阅读器。

实际字符串:10008-3TE40M181446-183A-976R

但是当我用toast方法显示它时它正在预览,即10008-3TE40M181446-183A-976R

但是当我尝试使用日志功能在控制台上打印时,它打印为10008-3 TE40 M181446-183 A-9767 R

读取条形码字符串的代码:

if (e.getAction() == KeyEvent.ACTION_DOWN) {
            char pressedKey = (char) e.getUnicodeChar();
            barcode += pressedKey;


            if (e.getKeyCode() == KeyEvent.KEYCODE_ENTER && !Check.isEmpty(barcode.toString())) {
                showToastInCenter(barcode);
                searchByBarcode(barcode.trim());
                barcode = "";


                return true;

            }
        }

}

public void showToastInCenter(String message){
            Toast.makeText(MainActivity.this, gmessage, Toast.LENGTH_SHORT).show();

编辑:

正如this link所说, 是替换字符。

正如我已经阅读了其他堆栈溢出答案,该答案表明如果UTF-8无法检测到任何字符,那么它将替换为此“替换字符”。也许字符串有ISO-8889-1字符集。

但现在问题是如何将其转换为UTF-8字符集。

android logging barcode-scanner android-toast
1个回答
-1
投票

也许扫描仪会通知CapsLock密钥或NumLock密钥的Make / Break?

由于它不是字符键,因此它似乎是替换字符,作为UTF-8中未包含的无效值。

例如,请参阅扫描仪设置手册“第2章 - 编程接口”中的键盘样式,键盘转换,控制字符输出等说明。

尝试更改这些设置,或检查通知的密钥代码的值,并更改为不添加条形码数据的处理,但字符和输入等有效值除外。

© www.soinside.com 2019 - 2024. All rights reserved.