Svenska tecken i DeviceName

Moderator: Telldus

Post Reply
EJE64
Posts: 2
Joined: Fri Mar 17, 2023 9:45 am

Svenska tecken i DeviceName

Post by EJE64 »

Hej!
Jag har precis börjat utveckla lite runt TellStick (Duo) och det fungerar generellt bra, men har ett problem med om enheterna har svenska bokstäver i namnet. Hur gör jag för att få dem att visas på lösligt sätt?
Har jag en device som ex heter "Gästrum" så få jag tillbaka en sträng som ser ut så här " Gästrum"
...
int DeviceId = TelldusAPI.tdGetDeviceId(i);
string DeviceName = TelldusAPI.tdGetNameString(DeviceId);

....
[DllImport("TelldusCore.dll")]
private static extern IntPtr tdGetName(int intDeviceId);

public static string tdGetNameString(int intDeviceId)
{
return Marshal.PtrToStringAnsi(tdGetName(intDeviceId));
}

Tror säkert att det är ett enkelt svar och att jag borde förstå, men är tacksam för hjälp!
/Jörgen
krambriw
Posts: 654
Joined: Fri Mar 17, 2023 9:45 am

Re: Svenska tecken i DeviceName

Post by krambriw »

unicode, utf-8, u''....

Hur det skall hanteras i C# vet jag inte (det är väl C# du kör?) men det är i alla fall lösningen. I Python löste jag det med

Code: Select all

name.decode('utf-8')
mvh
EJE64
Posts: 2
Joined: Fri Mar 17, 2023 9:45 am

Re: Svenska tecken i DeviceName

Post by EJE64 »

Tack för svaret :-)

För de som eventuellt läser denna tråd framöver, så kan jag komplettera med att i C# så gör men det med följande kodrad:
Encoding.UTF8.GetString(...);
Tasle
Posts: 9
Joined: Fri Mar 17, 2023 9:45 am
Contact:

Re: Svenska tecken i DeviceName

Post by Tasle »

Det er rett, konvertere fra UTF-8 til Ansi-string. Og i Delphi:

Code: Select all

Navn:= Utf8ToAnsi (Name);
Post Reply