Probleme mit Unicode Zeichen: 😎🚩

09.12.2021 00:08
#1 Probleme mit Unicode Zeichen: 😎🚩
l2
Mitglied

Hallo
Ich experimentiere gerade mit Unicode-Zeichen wie diesen 😎🚩 als Alternative zu den gif-smileys.
Wenn man diesen Beitrag zitiert und eine Antwort nicht beendet, sondern die Seite verlässt und dann in einem zweiten Seitenaufruf die Bearbeitung fortsetzt, geht die Formatierung der Unicode Zeichen verloren: ����
Liegt das Problem in der Autosave-Prozedur?

mfg





... würde es „Fussball spielen” heissen

vG Bernd‍

 Antworten

 Beitrag melden
09.12.2021 09:02
#2 RE: Probleme mit Unicode Zeichen: 😎🚩
l2
Mitglied

kleiner Nachtrag:
ursprünglich wollte ich in der "Iconbar" mittels Textbausteinen solche Zeichen 😉 einbinden, aber die Tools sind dafür wohl unbrauchbar ...

Wenn der Fehler im javascript liegt, dann hilft zb:
eine Suche nach String.fromCharCode() im wiki.selfhtml.org


mfg





... würde es „Fussball spielen” heissen

vG Bernd‍

 Antworten

 Beitrag melden
09.12.2021 10:02
avatar  Ingmar
#3 RE: Probleme mit Unicode Zeichen: 😎🚩
avatar
Technik

😀🤣😅😊😍😗☺🤩😐🙄😥😯

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
09.12.2021 10:03
avatar  Ingmar
#4 RE: Probleme mit Unicode Zeichen: 😎🚩
avatar
Technik

Also meinen vorherigen Beitrag habe ich aus dem Autosave erstellt. Allgemein sollte das also gehen.

Wenn das bei dir nicht klappt, müsstest du konkret sagen wo genau das bei euch auftritt.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
09.12.2021 11:09
#5 RE: Probleme mit Unicode Zeichen: ����
l2
Mitglied

Zitat von Ingmar im Beitrag #3
������������☺����������

Zitat von Ingmar im Beitrag #3
������������☺����������

danke für die schnelle Antwort.

jetzt habe ich so lange auf Autosave löschen und Zitate wieder einfügen getippt,
Antwort abbrechen
Seite neu laden und gespeicherte Zitate wieder einfügen
jetzt kann ich die genaue Reihenfolge gar nicht mehr erklären.
auf jeden Fall ändert sich auch die Titelzeile.
Ich benutze übrigens die mobile Ansicht aber das sollte keinen Unterschied machen.

mfg





... würde es „Fussball spielen” heissen

vG Bernd‍

 Antworten

 Beitrag melden
12.12.2021 21:48
#6 RE: Probleme mit Unicode Zeichen: 😎🚩
l2
Mitglied

Hallo Ingmar

... habe noch mal im Quellcode gestöbert und sehe in dieser Funktion das Problem.
sie arbeitet nur für utf16 korrekt

1
2
3
4
5
6
7
8
9
10
11
12
 

function old_convert2entity(utf8_string) {
var html_entity = "";
for(i=0; i<=utf8_string.length; i++)
{
if(utf8_string.charCodeAt(i)>127){
html_entity += "&#" + utf8_string.charCodeAt(i) + ";";
}else{html_entity += utf8_string.charAt(i);}
}
return html_entity;
}
 
 



Trotz der guten Quellen, nach etlichen Versuchen, habe ich folgenden Vorschlag

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
function convert2entity(utf8_string) {
// Quelle: https ://wiki.selfhtml.org/wiki/JavaScript/Objekte/String/charCodeAt
// Quelle: https ://wiki.selfhtml.org/wiki/JavaScript/Objekte/String/fromCharCode
// Quelle: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt
var html_entity = "";
 
for(var i=0; i<utf8_string.length; i++){ // i <= utf8_string.length ???
 
var code = utf8_string.charCodeAt(i);
var hi, low;
 
if(code<128) {
html_entity += utf8_string.charAt(i);
}
 
// High surrogate (could change last hex to 0xDB7F
// to treat high private surrogates
// as single characters)
else if (0xD800 <= code && code <= 0xDBFF) {
hi = code;
low = utf8_string.charCodeAt(i + 1);
if (isNaN(low)) {
throw 'High surrogate not followed by ' +
'low surrogate in convert2entity()';
}
i++;
code=((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;
// html_entity += "&#" + code + ";" ;
html_entity += "&#x" + code.toString(16).toUpperCase() + ";" ;
}
 
else {
html_entity += "&#" + utf8_string.charCodeAt(i) + ";";
}
}
return html_entity;
}
 
 



mein kleines Testprogramm habe ich noch angehängt

1
2
3
4
5
6
7
8
9
 

var msg=document.getElementById("messagetext");
msg.value=decodeURI ("%F0%9F%98%89-%F0%9F%99%81-%E2%82%AC"); 2 Simleys und Euro
var txt=msg.value;
msg.value+="\n=== convert2entity: ====\n"+ convert2entity(txt);
msg.value+="\n=== old convert2entity: ====\n"+ old_convert2entity(txt);
msg.value+="\n=== encodeURI: ====\n"+ encodeURI(txt)+"\n";
 

 



das liefert:

😉-🙁-€
=== convert2entity: ====
&#x1F609;-&#x1F641;-€
=== old convert2entity: ====
��-��-€
=== encodeURI: ====
%F0%9F%98%89-%F0%9F%99%81-%E2%82%AC

oder maskiert

1
2
3
4
5
6
7
 
=== convert2entity: ====
&#x1F609;-&#x1F641;-&#8364;
=== old convert2entity: ====
&#55357;&#56841;-&#55357;&#56897;-&#8364;
=== encodeURI: ====
%F0%9F%98%89-%F0%9F%99%81-%E2%82%AC
 
 



=== convert2entity: ====
&#x1F609;-&#x1F641;-€
=== old convert2entity: ====
��-��-€
=== encodeURI: ====
%F0%9F%98%89-%F0%9F%99%81-%E2%82%AC


jetzt habe ich auch meine Boardnummer eingetragen, falls du auch mal in meinem kleinen Testforum rumclicken magst.

mfg





... würde es „Fussball spielen” heissen

vG Bernd‍

 Antworten

 Beitrag melden
13.12.2021 01:24
#7 RE: Probleme mit Unicode Zeichen: ����
avatar
Mitglied

jetzt wissen es mit zitat-button fehler daher ist das grund nur mit utf16 arbeitet das ist die genau hilfreich das zitat-button wieder in griff bekommen hoffe kriegt ihr hin...


 Antworten

 Beitrag melden
13.12.2021 10:28
avatar  Ingmar
#8 RE: Probleme mit Unicode Zeichen: 😎🚩
avatar
Technik

Cool und danke, dass du dir so viel Mühe gemacht hast.

Leider kann ich das nicht einfach so ändern, ohne vorher eine Reihe von Tests zu machen.

Die gute alte convert2entity Funktion ist bei uns an vielen Stellen im Einsatz und vereinheitlicht Daten mit den unterschiedlichsten encodings, die in 25 Jahren Forensoftware so angelaufen sind. Jede kleine Änderung daran könnte also wieder Zeichensatzfehler an anderen, unerwarteten Stellen zur Folge haben.

Aber dein Ansatz scheint zumindest für dieses konkrete Problem richtig zu sein. Ich teste mal ein wenig herum, wie sich das an anderen Stellen auswirkt.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
14.12.2021 20:58
#9 RE: Probleme mit Unicode Zeichen: 😎🚩
l2
Mitglied

Hallo Ingmar, Lucas & alle Ungeduldiigen

Ingmar, deine Bedenken kann ich gut verstehen, gut Test will Weile haben.

Für mich sehe ich auch keinen Handlungsbedarf. Ich habe die alte Funktion einfach auf meiner Seite überschrieben, indem ich die neue Version im "Fußzeilenbereich" als 'Patch' eingetragen habe.

Wer sich quasi als Beta-Tester probieren möchte, kann das ja auch tun und ggf. von Unstimmigkeiten hier berichten.
Diese Idee ist mir erst heute gekommen, mag vielleicht noch unausgegoren sein. Habe es bis jetzt auch nur in der DesktopVariante getestet; im Mobilteil muss es dann ja wiederholt werden ...
Wenn's nicht so funktioniert wie erhofft, lässt es sich ja einfach rückgängig machen.

mfg





... würde es „Fussball spielen” heissen

vG Bernd‍

 Antworten

 Beitrag melden
28.01.2022 17:45
#10 RE: Probleme mit Unicode Zeichen: 😎🚩
l2
Mitglied

hallo,

wollte mal testen, ob v6 diesen Bug geerbt hat, scheint so ... 😌

was positives ist mir aber doch aufgefallen, meldet sich z.B. ein User "ageNT_😎" an,

wird im cookie sein Nick einwandfrei gespeichert "ageNT_%26%23128526%3B" und macht auch auf allen Seiten keine Schwierigkeiten 😊





... würde es „Fussball spielen” heissen

vG Bernd‍

 Antworten

 Beitrag melden
Bereits Mitglied?
Jetzt anmelden!
Mitglied werden?
Jetzt registrieren!