TelldusCore och encoding
Posted: Fri Mar 17, 2023 9:45 am
Jag har lite problem med remotestick-server och rätt encoding av namnet när jag lägger till nya enheter. Namnet får jag över ett HTTP request in till ett python-skript och om jag inte behandlar strängen alls så går det bra att skicka in den till tdSetName() så länge strängen inte innehåller några non-ascii tecken. Om jag t.ex. skickar med åäö så ballar det ur. Dels om jag skriver ut strängen på prompten så blir det bara "???" och namnet som registreras i TelldusCore blir helt förvrängt.
Strängen som kommer över HTTP är kodad i latin1 och om jag kör name.decode('latin1') så får jag tillbaka en sträng som, när jag skriver ut den på prompten, ser ut som den ska. Men när jag skickar in den till TelldusCore så blir det nu ännu värre än tidigare. (För Linux:) Skickar jag in en sträng med bara non-ascii så lagras bara det första tecknet. Skickar jag in åäö så lagras bara ett tecken men helt förvrängt. (För Mac OS X:) Oavsett vad jag skickar in så smäller python-skriptet med felet "Bus error".
Så min fråga är egentligen. Hur ska strängen vara kodad för att TelldusCore ska acceptera den och kunna ta emot åäö?
Strängen som kommer över HTTP är kodad i latin1 och om jag kör name.decode('latin1') så får jag tillbaka en sträng som, när jag skriver ut den på prompten, ser ut som den ska. Men när jag skickar in den till TelldusCore så blir det nu ännu värre än tidigare. (För Linux:) Skickar jag in en sträng med bara non-ascii så lagras bara det första tecknet. Skickar jag in åäö så lagras bara ett tecken men helt förvrängt. (För Mac OS X:) Oavsett vad jag skickar in så smäller python-skriptet med felet "Bus error".
Så min fråga är egentligen. Hur ska strängen vara kodad för att TelldusCore ska acceptera den och kunna ta emot åäö?