java - Java 文本字段不显示 Unicode 字符
问题描述
我需要用手持扫描仪扫描 QRCode(GS1 标准)并将其解析为 4 个元素。
这 4 个元素中有 2 个的长度是可变的,因此它们后面是 "GS" GLOBAL_SEPARATOR \u001D
。
二维码读取示例:
01076127912745342191509713306750**GS**10SHU42**GS**17201231
在这张图片上,您可以看到 NotePad++ 中的“GS”GLOBAL_SEPARATOR UNICODE
但是,当我从 javafx 文本字段中的扫描仪中读取 QRCode 时,当我制作时,unicode 字符 GLOBAL_SEPARATOR 不显示
myTextField.getText() => 0107612791274534219150971330675010SHU417201231.
如何在我的文本字段中读取 unicode 字符以正确解析它?
谢谢
更新:使用 getBytes GS 组分隔符不在
`public static void main(String[] args) {
System.out.println("Scan= ");
BufferedReader buffer;
int charRead;
StringBuffer sb = new StringBuffer();
String linein;
try {
buffer = new BufferedReader(new InputStreamReader(System.in, "UTF-8"));
linein = buffer.readLine();
byte[] b = linein.getBytes("UTF-8");
// Displaying converted string after conversion
System.out.println("The String after conversion is : ");
for (int i = 0; i < b.length; i++) {
System.out.print(b[i]);
}
} catch (IOException e1) {
System.out.println(e1.getMessage());
e1.printStackTrace();
}
}`
GS 应该在 4849 之间,但没有
48494855544950555749505552535152504957495348575549515148545553**4849**4883728552504955504849505149
解决方法:
在您的手上配置条码扫描仪字符转换以将 GS 转换为您可以选择的任何其他字符,例如“;” 当你扫描 qrcode
唯一的缺点:在使用您的软件之前需要在扫描仪中配置您的手
解决方案
您可以自己实现 TextField。只需复制 TextField 类并更改一点“插入”方法即可。删除 TextInputControl.filterInput(text, true, true) - 在这里您松开了 GS 分隔符。
推荐阅读
- ios - Fatal error in array - Index out of range
- docker - 让 docker daemon 自动向防火墙添加规则
- android - 类需要 api 级别 21 - JobService (Firebase Jobdispatcher)
- javascript - 基于时间的文本
- solr - Apache Nutch 部分页面处理技巧
- javascript - Uncaught SyntaxError:当我从 API 接收 JSON 响应时出现意外标识符
- haskell - 为什么在 Haskell 中翻转和翻转(:) 函数不同?
- jmeter - 如何获得 404 响应代码的 Jmeter 报告?
- r - R ggplot改变图例中的颜色和图例序列
- python - 我可以根据它在内存中的地址或它的 id 调用一个 lambda 函数吗?