Android Delphi10.1安卓应用程序。如何将单字节文本作为JString传递。
我的应用程序在Zebra EM220移动打印机上打印。我的国家字符编码在代码页CP852(支持打印机)中,但Delphi显然是Unicode 打印机库有一个打印文本的方法,该方法将JString作为文本参数传递。不幸的是,StringToJString的使用效果不好,因为在每个my national字符之前都会打印一个额外的“?”或“t”。看起来打印机需要一个单字节编码的文本,在两个字节时,它不知道该做什么 现在的问题是:如何将Unicode字符串编码为单字节字符串I CP852代码页,并将其作为JString参数传递 如何将Unicode字符串编码为单字节字符串I CP852代码页,并将其作为JString参数传递 可以使用Delphi的codepaged AnsiStrings功能,或Delphi RTL的Android Delphi10.1安卓应用程序。如何将单字节文本作为JString传递。,android,delphi,unicode,Android,Delphi,Unicode,我的应用程序在Zebra EM220移动打印机上打印。我的国家字符编码在代码页CP852(支持打印机)中,但Delphi显然是Unicode 打印机库有一个打印文本的方法,该方法将JString作为文本参数传递。不幸的是,StringToJString的使用效果不好,因为在每个my national字符之前都会打印一个额外的“?”或“t”。看起来打印机需要一个单字节编码的文本,在两个字节时,它不知道该做什么 现在的问题是:如何将Unicode字符串编码为单字节字符串I CP852代码页,并将其作
LocaleCharsFromUnicode()
功能,甚至是Java通过JNI的方法,将Unicode数据转换为特定的单字节字符集
但是不能在JString
参数中传递单字节数据,也不应该尝试这样做
JString
是Delphi的包装器,它是一个UTF-16编码字符串,与is一样
如果打印机库确实将JString
作为输入,则StringToJString()
将正常工作。它只需将UTF-16数据原样从DelphiUnicodeString
复制到JavaString
在将数据发送到实际打印机时,库负责将Java字符串
数据从UTF-16转换为CP852(或任何形式)
如果您在向库发送特定字符时遇到问题,这与其他内容有关,例如发送CP852中不存在的Unicode字符。在Java中使用Unicode文本与库时,如果您在Delphi中使用Unicode文本与库时遇到任何问题,都应该存在,因为无论哪种方式,输入都是相同的。请提供一个演示Delphi中问题的示例。如果您有处理Unicode文本的Java代码,而Delphi没有,请也显示该代码。