3

在 Java 中,我想打印一个带有字符串作为输入的标签:

 String command
            = "N\n"
            + "A50,5,0,1,2,2,N,\"" + name + "\"\
            + "P1\n";    

但是当输入 ( name) 有一个双引号字符 ( ") 时,它是空白的并且什么也不打印。我尝试过使用替换功能:

name.replace('"', '\u0022');          

但它不起作用。我想在标签上打印双引号,我该怎么做?

4

2 回答 2

2

几点:

  • replace 方法在替换后返回字符串,因此您应该期望类似:

    command = command.replace...
    
  • 引号具有特殊含义,因此需要在 Java 中进行转义。您需要以下内容:

    name = name.replace("\"", "");
    String command
        = "N\n"
        + "A50,5,0,1,2,2,N,\"" + name + "\""
        + "P1\n"; 
    System.out.println(command);
    
于 2014-12-22T16:09:25.137 回答
2

在 EPL 字符串的文本字段中发送 " 字符会使 EPL 代码认为它是您尝试打印的字符串的结尾。

所以,如果你想发送(并打印)“hello”,你必须在每个 " 字符前加上一个反斜杠并发送 \"hello\"

对于反斜杠,您还必须这样做。

因此,您的(EPL)输出到打印机将有引号来开始和结束字符串,并且 \" 来打印字符串内的引号字符:

A30,210,0,4,1,1,N,"\"你好\""\n

另请记住,您必须转义为字符才能构建 ac# 字符串,因此在 c# 中它看起来像这样: outputEPLStr += "A30,210,0,4,1,1,N, \"\\"hello\\"\ " \n";

[其中包含 6 个转义字符]

于 2018-05-03T14:30:16.973 回答