Portál AbcLinuxu, 6. května 2025 06:10
TZSP[Ethernet[TCP[plain_text]]]Obsah plain textu je něco jako:
<tbl_invertor_prms><TblName>tbl_invertor_prms</TblName><ID_Device>1910232042</ID_Device><ID_Set>682432800</ID_Set><DT>2021-02-24 12:40:01</DT><Reason>Table</Reason><ERR_PV>8</ERR_PV><ERR_BATT>0</ERR_BATT><ERR_GRID>0</ERR_GRID><ERR_AC>0</ERR_AC><ERR_ELSE>0</ERR_ELSE><DBG1>886</DBG1><DBG2>0</DBG2><DBG3>0</DBG3><DBG4>0</DBG4><T_INN>21.0</T_INN><PRRTY>1</PRRTY><CHARGE>1</CHARGE><CHARGE_AC>0</CHARGE_AC><TO_GRID>0</TO_GRID><LOAD_PV_ON>1</LOAD_PV_ON><LOAD_PV_OFF>1</LOAD_PV_OFF><GRID_PV_ON>0</GRID_PV_ON><GRID_PV_OFF>0</GRID_PV_OFF><MODE>5</MODE><MODEL>50</MODEL><PRLL_OUT>0</PRLL_OUT><P_ADJ_STRT>20</P_ADJ_STRT><P_ADJ_ENBL>1</P_ADJ_ENBL><PF_MIN_100>-0.90</PF_MIN_100></tbl_invertor_prms>Potřeboval bych z toho vytahat hodnoty. Skript, který zatím mám je v příloze. Problém je v tom, že nemůžu jednoduše dekódovat ty přijaté bajty do stringu, píše to chybu:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd4 in position 1: invalid continuation byte
Nevíte někdo, jak to jednoduše udělat? Ideálně abych nemusel postupně rozbalovat všechny protokoly, třeba něco ve stylu, že když to ten znak nezná, tak to dá místo něho třeba mezeru, nebo cokoli jiného.
Řešení dotazu:
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.