Svenska tecken i DeviceName

Moderator: Telldus

Post Reply
EJE64
Posts: 2
Joined: Thu Jan 18, 2018 11:08 am

Svenska tecken i DeviceName

Post by EJE64 » Thu Jan 18, 2018 11:08 am

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: Thu Jan 18, 2018 11:08 am

Re: Svenska tecken i DeviceName

Post by krambriw » Thu Jan 18, 2018 11:08 am

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: Thu Jan 18, 2018 11:08 am

Re: Svenska tecken i DeviceName

Post by EJE64 » Thu Jan 18, 2018 11:08 am

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: Thu Jan 18, 2018 11:08 am
Contact:

Re: Svenska tecken i DeviceName

Post by Tasle » Thu Jan 18, 2018 11:08 am

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

Code: Select all

Navn:= Utf8ToAnsi (Name);

Post Reply