首页 > 解决方案 > 日志打印的字符串与使用 Toast 方法显示的字符串不同

问题描述

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

实际字符串: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();

编辑:

正如这个链接所建议的那样,是替换字符。

正如我读过的其他堆栈溢出答案所说,如果 UTF-8 无法检测到任何字符,那么它将用这个“替换字符”替换。也许字符串有 ISO-8889-1 字符集。

但现在问题来了,我将如何将其转换为 UTF-8 字符集。

标签: androidloggingbarcode-scannerandroid-toast

解决方案


推荐阅读