android - 日志打印的字符串与使用 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 字符集。
解决方案
推荐阅读
- c# - 如何在现有 XML 文件中的 XML 根目录中添加类?
- javascript - 使用 Croppie jquery 插件裁剪和上传图像
- react-native - React Native 如何分别对每个特定选项卡应用分页和加载更多?
- python - 我如何使它更快?
- python-3.x - 根据特定条件使用 groupby 进行分组
- javascript - 有没有办法根据 .env 变量“构建”我的代码?
- tensorflow - Kubernetes + TF 服务 - 如何使用数百个 ML 模型而不运行数百个空闲 pod?
- neural-network - 计算稀疏性的模块名称
- camunda - 多个嵌入式流程引擎实例在 camunda 中跨多个应用程序使用共享数据库?
- php - vue-router (vue 3) createWebHistory No match found for location with path