我需要用手持扫描仪扫描QRCode(GS1标准)并将其解析为4个元素。
这4个元素中的2个元素的长度可变,因此后跟“ GS” GLOBAL_SEPARATOR \u001D
。
读取 QRCode 的示例:
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
WORKAROUND:
在手上配置条形码扫描仪字符转换,以将GS转换为您可以选择的任何其他字符,例如“;”扫描二维码时
唯一的缺点:在使用软件之前需要在扫描仪中进行配置
答案 0 :(得分:1)
您可以自己实现TextField。 只需复制TextField类并更改一些“插入”方法即可。 删除TextInputControl.filterInput(text,true,true)-在这里,您松开了GS分隔符。