我正在编写一个Delphi 2009程序,它将转义命令发送到标签打印机以打印条形码。请参阅Sending printer specific commands,我可以使用Windows.Escape()来完成这项工作。但我的问题是我们的数据库存储UTF8数据(用于存储不同的语言),请问Windows.Escape()是否接受UTF8数据?
由于
答案 0 :(得分:1)
使用PASSTHROUGH
时,如链接代码所做的那样,Escape
API接受Escape
未以任何方式处理的原始8位数据。数据直接传递给设备。
您可以从其文档中了解Escape
功能:https://msdn.microsoft.com/en-us/library/windows/desktop/dd162701.aspx
如果打印机理解UTF-8,那么您的方法应该有效。但是,如果打印机不理解UTF-8,它将失败。换句话说,这不是关于Escape
的问题,而是关于您的打印机的问题。您需要查阅其文档。
在您的问题的行之间阅读,似乎您正在让数据库中使用的编码驱动您对打印的思考。在我看来,这是错误的。您的数据库和打印机之间没有任何关联。您的打印机是否理解UTF-8与您的数据库文本编码无关。您需要首先确定打印机需要的编码。如果它与数据库使用的不一样,那么您将需要转换。从一种编码转换为另一种编码通常很简单。