我遇到一个问题,如果我传递一个硬编码字符串\x1B|200uF
作为参数,该命令会正确接受它。字符串中的转义序列
但是,当我检索XML元素相同的值到一个新的字符串变量,我得到以下值:\\x1B|200uF
正如你可以看到有一个额外的转义序列。
因此,在总结问题:
using (XmlReader xmlReader = XmlReader.Create(@"PosPrinter.xml"))
{
while (xmlReader.Read())
{
if (xmlReader.NodeType == XmlNodeType.Element)
{
switch (xmlReader.Name)
{
case "PosPrinter":
_printer.LogicalName = xmlReader.GetAttribute("LogicalName");
break;
case "FeedReceiptCommand":
_printer.FeedReceiptCommand = xmlReader.GetAttribute("value");
break;
我值检索到我的“FeedReceiptCommand”字符串正如我上面提到的值存储在XML作为\x1B|200uF
但检索到的字符串作为\\x1B|200uF
与在开始时额外的转义序列。
我然后使用字符串变量FeedReceiptCommand打电话给我的命令:
_posPrinter.PrintNormal(PrinterStation.Receipt, PrinterSettings.FeedReceiptCommand);
但由于额外的转义序列的命令不执行。
但如果我叫用值相同的命令硬编码:
_posPrinter.PrintNormal(PrinterStation.Receipt, "\x1B|200uF");
...然后命令被成功执行..
价值\x1B|200uF
是ESC命令使用Microsoft.PointOfService发送给Epson TM-T88V打印机,其中'\ x'是用于Hex的,我认为1B是Hex值。
我hav e试图通过使用'Trim','Substring',甚至做一个foreach循环来循环字符串中的每个字符以建立一个新字符串来摆脱额外的转义序列。我也尝试过stringbuilder。
但我错过了这里的某处。
因此,任何帮助会中我如何在地方\x1B|200uF
您能得到什么,如果你打印出价值?我确信''''只是一个显示器。 – ChrisF 2013-02-13 23:04:56