Delphi 2009 - 以UTF8格式发送打印机命令

时间:2017-06-19 08:17:51

标签: delphi printing utf-8

我正在编写一个Delphi 2009程序,它将转义命令发送到标签打印机以打印条形码。请参阅Sending printer specific commands,我可以使用Windows.Escape()来完成这项工作。但我的问题是我们的数据库存储UTF8数据(用于存储不同的语言),请问Windows.Escape()是否接受UTF8数据?

由于

*我发现Escape接受了PAnsiChar ...... enter image description here

1 个答案:

答案 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与您的数据库文本编码无关。您需要首先确定打印机需要的编码。如果它与数据库使用的不一样,那么您将需要转换。从一种编码转换为另一种编码通常很简单。