suit: strings in sonderzeichen?

Beitrag lesen

ich habe einen string mit sonderzeichen, der an php übergeben wird, sagen wir "24 Ω". in der datenbank habe ich ihn als 24 &#8486; gespeichert. jetzt möchte ich die beiden vergleichen. dafür fange ich Ω ab und ersetze es mit str_replace("&#8486;", "Ω", $correctarray); durch &#8486; und vergleiche dann "24 &#8486;" mit "24 &#8486;", was auch super funktioniert, dachte ich, weil die seite ja <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> und so ist.

Warum speicherst du entities in der Datenbank? Das hat keinen SInn.

wie dem auch sei. bei genauerer betrachtung stellt sich heraus, dass manche browser/betriebssystem/kombinationen-daraus die "24 Ω" nicht wirklich als "24 Ω", sondern als "24 Ω" übergeben.

Diese Systeme raten vermutlich schlechter als andere - du gibst vermutlich gar keine Zeichenkodierung an, die einen Sinn ergibt und damits wenigstens halbwegs passt, drehen das ein paar Browser wieder um.

Sieht jedenfalls so aus als hättest du UTF-8-codierte Daten vorliegen, überträgst sie aber in einer Single-Byte-Kodierung.

sieht lustig aus, bringt aber mein system arg ins wanken, weil ich das Ω dann nicht mehr durch &#8486; ersetzen kann und foglich "24 &#8486;" nicht mehr gleich "24 &#8486;" ist. kurzum, eine lösung muss her und hier seid ihr mal gefragt, denn mein latein ist am ende.

Verwende konsequent UTF-8 und mache dich mit dem Konzept eines Kontextwechsels vertraut.

mein browser, als der safari, übergibt es übrigens so, dass am ende 24 Ω in der datenbank steht. ist nicht 24 Ω und schon gar nicht 24 Ω aber funktioniert wenigstens für den teil "24 &#8486;" = "24 &#8486;".

Schei? Encoding ;)