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
Svenska tecken i DeviceName
Moderator: Telldus
Re: Svenska tecken i DeviceName
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
mvh
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')
Re: Svenska tecken i DeviceName
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(...);
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(...);
Re: Svenska tecken i DeviceName
Det er rett, konvertere fra UTF-8 til Ansi-string. Og i Delphi:
Code: Select all
Navn:= Utf8ToAnsi (Name);