Telegram-Messages mit Emojis
Moderator: Co-Administratoren
-
- Beiträge: 309
- Registriert: 16.11.2011, 18:16
- System: CCU und Access Point
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 8 Mal
Re: Telegram-Messages mit Emojis
Habe ich denn sonst irgendwelche "Nachteile", wenn ich das bisher verwendete UriEncode durch das "Mini-UriEncode" (nur auf die Leerzeichen angewendet) einsetze? Bisher habe ich alle Push-Nachrichten vor dem Versand mit UriEncode durchlaufen lassen. Wenn ich das jetzt "nur" auf die Leerzeichen reduziere, könnten dann Nachrichten nicht/falsch verschickt werden?
HmIP auf Pi3B+ mit RaspberryMatic und neuem Funk-Modul sowie 3 HAPs / Etwa 150 IP-Geräte
-
- Beiträge: 580
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 29 Mal
- Danksagung erhalten: 136 Mal
Re: Telegram-Messages mit Emojis
Wenn du Umlaute oder irgendwelche Sonderzeichen in der Nachricht hast
brauchst du das .UriEncode().
Du musst aber sicherstellen, dass die emoji nicht auch mit .UriEncode() geändert werden.
brauchst du das .UriEncode().
Du musst aber sicherstellen, dass die emoji nicht auch mit .UriEncode() geändert werden.
Code: Alles auswählen
string msg ="ABC & ÄÖ Üẞ";
string emoji = "%E2%9A%A0";
var sysvarname ="TelegramBotToken";
string TOKEN = dom.GetObject(ID_SYSTEM_VARIABLES).Get(sysvarname).Value();
var sysvarname ="TelegramBotChatIDs";
string CHATID = dom.GetObject(ID_SYSTEM_VARIABLES).Get(sysvarname).Value();
string MESSAGE = emoji#msg.ToUTF8().UriEncode();
string stdout;
string stderr;
system.Exec("wget --no-check-certificate -q -O - 'https://api.telegram.org/bot'"#TOKEN#"'/sendMessage?chat_id='"#CHATID#"'&parse_mode=markdownv2&text='"#MESSAGE , &stdout, &stderr);
Gruß
Harry
Harry
-
- Beiträge: 309
- Registriert: 16.11.2011, 18:16
- System: CCU und Access Point
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 8 Mal
Re: Telegram-Messages mit Emojis
Habe mich jetzt mal mit der Codierung befasst. Ich selbst komme um UriEncode nicht herum, da ich öfter Umlaute und Sonderzeichen verwende. Insofern müsste das (zumindest bei mir) drinbleiben.
Das einzige Problem für die Emojis ist doch das automatische Konvertieren des %-Zeichens, sehe ich das richtig? Das wird durch UriEncode zu %25 und ist dann für Telegram als Emoji nicht mehr erkennbar. Habe ich das so richtig verstanden?
Wenn dem so ist, müsste ich nach Konvertierung mittels UriEncode noch mal die %25 zurück konvertieren in %, dann sollten die Emojis doch wieder funktionieren
Das einzige Problem für die Emojis ist doch das automatische Konvertieren des %-Zeichens, sehe ich das richtig? Das wird durch UriEncode zu %25 und ist dann für Telegram als Emoji nicht mehr erkennbar. Habe ich das so richtig verstanden?
Wenn dem so ist, müsste ich nach Konvertierung mittels UriEncode noch mal die %25 zurück konvertieren in %, dann sollten die Emojis doch wieder funktionieren
HmIP auf Pi3B+ mit RaspberryMatic und neuem Funk-Modul sowie 3 HAPs / Etwa 150 IP-Geräte
-
- Beiträge: 309
- Registriert: 16.11.2011, 18:16
- System: CCU und Access Point
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 8 Mal
Re: Telegram-Messages mit Emojis
Funktioniert
Damit kann man seine Nachrichten URL-konform umwandeln, aber die %-Zeichen werden wieder zurück gewandelt. Dann klappt der Versand (auch mit MarkdownV2) und Emojis werden angezeigt!
Code: Alles auswählen
.UriEncode().Replace("%25","%")
HmIP auf Pi3B+ mit RaspberryMatic und neuem Funk-Modul sowie 3 HAPs / Etwa 150 IP-Geräte