[英]Passing String into Python Function from LabVIEW
我正在嘗試將 LabVIEW 中的字符串傳遞到 Python 節點。 該字符串是一整串需要正確解碼的字節(U8)(它們是通過 UDP 接收的 Google Protobuf 數據)。 但是,當我傳遞一個長度為 152 的字符串時,我只收到一個長度為 ~18 的字符串。 我認為文件中有 5 個連續 0 的地方出了點問題。 還有其他幾個可能需要忽略的轉義字符。
這是我的 Python (3.6.8) 代碼:
def Parse(s):
return str(len(s))
如果我傳入一個長度為 152 的字符串,我希望從這個 function 返回 152。
這是我想在兩者之間傳遞的示例字符串(發送時它們采用 ASCII 格式):
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
這可能是從 LV 到 Python 的問題嗎? 還是完全是 Python 問題?
謝謝,
捷通
UTF8 在解碼 Null (0x00) 字符時出現問題。
LabVIEW對此並沒有任何真正的顧慮,因為它維護了一個長度參數,允許它知道它的字符串有多長。 鑒於 python 字符串實際上是列表(沒有定義的長度),我相信這可能是 python 將 null 字符解碼為字符串結尾的問題。
如果您嘗試將字符串作為字節數組傳遞到 python 中,然后轉換為 python 中的字符串,它應該能夠毫無顧慮地處理這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.