从LabVIEW将字符串传递到Python函数

从LabVIEW将字符串传递到Python函数,python,labview,Python,Labview,我正在尝试将一个字符串从LabVIEW传递到Python节点。字符串是一整串需要正确解码的字节(U8)(它们是通过UDP接收的Google Protobuf数据)。但是,当我传递长度为152的字符串时,我只收到长度为~18的字符串。我认为在文件中有5个连续0的地方出了问题。还有一些其他转义字符可能需要忽略 以下是我的Python(3.6.8)代码: 如果我传入一个长度为152的字符串,我希望从这个函数返回152 下面是一个示例字符串,我想在这两个字符串之间传递(它们在发送时是ASCII格式的):

我正在尝试将一个字符串从LabVIEW传递到Python节点。字符串是一整串需要正确解码的字节(U8)(它们是通过UDP接收的Google Protobuf数据)。但是,当我传递长度为152的字符串时,我只收到长度为~18的字符串。我认为在文件中有5个连续0的地方出了问题。还有一些其他转义字符可能需要忽略

以下是我的Python(3.6.8)代码:

如果我传入一个长度为152的字符串,我希望从这个函数返回152

下面是一个示例字符串,我想在这两个字符串之间传递(它们在发送时是ASCII格式的):

从LV到Python,这可能是一个问题吗?还是完全是Python的问题

谢谢


JT在解码空(0x00)字符时出现问题

LabVIEW对此没有任何真正的顾虑,因为它维护了一个长度参数,允许它知道字符串的长度。鉴于python字符串实际上是列表(没有定义长度),我认为这可能是python将空字符解码为字符串结尾的问题


如果您试图将字符串作为字节数组传递到python中,然后在python中转换为字符串,那么它应该能够毫无顾虑地处理此问题。

UTF8在解码空(0x00)字符时遇到问题

LabVIEW对此没有任何真正的顾虑,因为它维护了一个长度参数,允许它知道字符串的长度。鉴于python字符串实际上是列表(没有定义长度),我认为这可能是python将空字符解码为字符串结尾的问题


如果您试图将字符串作为字节数组传递到python中,然后在python中转换为字符串,那么它应该能够毫无顾虑地处理此问题。

谢谢。出于好奇,我使用
s=array.array('B',B).tobytes()
将整数数组“byte array”从LabVIEW转换为字符串。您还需要
导入数组
。谢谢。出于好奇,我使用
s=array.array('B',B).tobytes()
将整数数组“byte array”从LabVIEW转换为字符串。您还需要导入数组。
def Parse(s):
    return str(len(s))
0A 95 01 0A 01 47 12 02 31 43 18 1E 20 1E 29 00 00 00 00 00 38 8B 40 31 00 00 00 00 00 EC A3 40 38 AC F2 FB 0B 50 80 89 7A 59 00 00 00 A0 0C FA 85 40 61 00 00 00 E0 32 0F F3 BF 69 00 00 00 60 49 36 46 40 71 7A 9F B9 01 F1 0F A2 40 79 31 67 14 06 29 B5 81 C1 81 01 00 00 E9 EA 15 B6 DB 3F 88 01 C2 F7 D4 E6 11 90 01 01 98 01 01 A0 01 01 A8 01 C8 A7 B6 9B 01 B1 01 08 BF E1 E1 D9 8E 74 41 B9 01 29 5C 8F C2 F1 E4 13 41 C0 01 01 C9 01 7E 44 18 D0 93 6D B3 41