Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java文本字段don';不显示unicode字符_Java_Unicode - Fatal编程技术网

Java文本字段don';不显示unicode字符

Java文本字段don';不显示unicode字符,java,unicode,Java,Unicode,我需要用手持扫描仪扫描QRCode(GS1标准),并将其解析为4个元素。 这4个元素中有2个元素的长度可变,因此它们后面跟着“GS”GLOBAL\u SEPARATOR\u001D QRCode读取示例: 01076127912745342191509713306750**GS**10SHU42**GS**17201231 在这张图片上,您可以看到记事本中的“GS”全局分隔符UNICODE++ 但是,当我在javafx文本字段中从手持扫描仪读取QRCode时,在我创建时,unicode字符全局

我需要用手持扫描仪扫描QRCode(GS1标准),并将其解析为4个元素。
这4个元素中有2个元素的长度可变,因此它们后面跟着“GS”
GLOBAL\u SEPARATOR\u001D

QRCode读取示例

01076127912745342191509713306750**GS**10SHU42**GS**17201231

在这张图片上,您可以看到记事本中的“GS”全局分隔符UNICODE++

但是,当我在javafx文本字段中从手持扫描仪读取QRCode时,在我创建时,unicode字符全局_分隔符不显示

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();
        }

    }`
`publicstaticvoidmain(字符串[]args){
System.out.println(“Scan=”);
缓冲读取缓冲区;
int-charRead;
StringBuffer sb=新的StringBuffer();
弦线;
试一试{
buffer=新的BufferedReader(新的InputStreamReader(System.in,“UTF-8”));
linein=buffer.readLine();
字节[]b=linein.getBytes(“UTF-8”);
//转换后显示已转换的字符串
System.out.println(“转换后的字符串为:”);
for(int i=0;i
GS应该在4849之间,但没有
48494855544950557495055525351250457574953485755495148545553**4849**4883728552504955504849505149

解决方法:

配置手边的条形码扫描仪字符转换,将GS转换为扫描qrcode时可以选择的任何其他字符,如“;”


唯一的缺点是:在使用软件之前需要配置手持扫描仪

您可以自行实现TextField。 只需复制TextField类并更改一点“insert”方法。
删除TextInputControl.filterInput(text,true,true)-在这里您松开了GS分隔符。

GS是组分隔符,而不是全局分隔符。它没有定义任何图形外观。它只是一个ASCII控制字符。记事本++为方便起见为您显示了一个特殊的图形,这只是记事本++的一个功能。您可能需要打印实际的字节值,以确保您的字符串实际包含使用getBytes方法的组分隔符:@AntoineMottier with getBytes,GS unicode字符不会出现。创建您自己的答案,由于这种变通方法似乎是唯一的解决方案。@DodgyCodeException似乎无法将其放入文本字段中,因此我想说的不值得进一步搜索。对。