Kleines utf8_decode Problem/chen
Simone
- php
HI,
Ich habe ein Problem mit "qualität" ;o)
Mein Query muss so ausehen -> qualit%C3%A4t
Aus dem String "qualität" soll qualit%C3%A4t werden, um ihn dann als $_GET Variable zu übergeben.
Das geht schon mal
echo utf8_decode(rawurldecode('qualit%C3%A4t'));
ergibt "qualität" als Ausgabe.
--------------------------------------------------
Im Header steht bei einer Post Übergabe
....
Content-Type: application/x-www-form-urlencoded
.....
=&query=qualit%C3%A4t
Jedoch möchte ich eine Get Übergabe
mit &query=qualit%C3%A4t
Es handelt sich um eine API Schnittstelle
Danke Simone
n'abend,
Aus dem String "qualität" soll qualit%C3%A4t werden, um ihn dann als $_GET Variable zu übergeben.
unten benutzt du rawurldecode um von den entities wieder zu "normalen zeichen" zu kommen... schon mal rawurlencode benutzt um von "normalen zeichen" zu entities zu kommen?
Das geht schon mal
echo utf8_decode(rawurldecode('qualit%C3%A4t'));
ergibt "qualität" als Ausgabe.
werden die entities nicht automatisch rückkonvertiert, oder ist da eine komische einstellung meines php dran schuld?
(oder habe ich deine frage jetzt gänzlich missverstanden?)
weiterhin schönen abend...
HI,
echo rawurlencode(utf8_encode('qualität'))
Ausgabe -> qualit%26auml%3Bt
Ich brauche aber:
Ausgabe -> qualit%C3%A4t
hast Du Vielleicht noch eine Idee?
Simone
n'abend,
echo rawurlencode(utf8_encode('qualität'))
Ausgabe -> qualit%26auml%3Bt
das schaut aber irgendwie so aus, als würde da die html-entity encoded werden... also rawurlencode(utf8_encode('qualität')) statt rawurlencode(utf8_encode('qualität'))
wofür überhaupt dieses utf8_decode zeugs?
vielleicht verwendest du irgendwo vorher htmlspecialchars() oder htmlentities() o.ä. auf dein 'qualität'?
weiterhin schönen abend...
HI,
Ich habe schon alles mir bekannte versucht
ohne Erfolg ;o(
Testumgebung ohne
<?
echo 'qualit%C3%A4t<br><br>';
echo rawurlencode(utf8_encode('qualität')).'<br><br>';
?>
Simone
n'abend,
Testumgebung ohne
<?
echo 'qualit%C3%A4t<br><br>';
echo rawurlencode(utf8_encode('qualität')).'<br><br>';
?>
wenn ich deinen code bei mir lokal ausführe, wird folgendes ausgegeben:
qualit%C3%A4t
qualit%C3%A4t
also exakt das was rauskommen soll...?!
(wozu der utf8_encode gut sein soll weiss ich zwar immer noch nicht, aber egal...)
weiterhin schönen abend...
HI,
Naja,
ich glaub ich mache erstmal eine Pause ;o)
So jetzt gehts auch bei mir....
$t_link=rawurlencode(utf8_encode(html_entity_decode($t)));
Danke Simone
n'abend,
$t_link=rawurlencode(utf8_encode(html_entity_decode($t)));
irgendwo muss dieses html-entity ja herkommen!
wie wahsaga schon schrieb... was für nen editor benutzt du denn?
wenn du das ganze mal in einem stinknormalen text-editor (windows: editor) speicherst... ist das problem mit den ä dann immer noch vorhanden? so tools wie dreamweaver und co. ändern umlaute ganz gerne mal in entities um...
da muss also definitiv irgendwas in deinem code passieren, dass da ein html-entity draus wird.. vielleicht solltest du mal nach der quelle suchen...
weiterhin schönen abend...
Hallo,
echo rawurlencode(utf8_encode('qualität')).'<br><br>';
(wozu der utf8_encode gut sein soll weiss ich zwar immer noch nicht, aber egal...)
Weil Du schon zum zweiten Mal fragst:
Offensichtlich erzeugt der Editor, mit dem der Code erzeugt wurde, kein UTF-8, sondern ISO-8859-1. Ein ISO-8859-1 "ä" mit urlencode() behandet, würde aber ein %E4 ergeben. Es wird aber ein UTF-8 "ä" urlencoded als %C3%A4 benötigt, weswegen der ISO-8859-1 String nach UTF-8 kodiert wird.
viele Grüße
Axel
hi,
<?
echo 'qualit%C3%A4t<br><br>';
echo rawurlencode(utf8_encode('qualität')).'<br><br>';
?>
Verwendest du vielleicht einen Editor, der beim Abspeichern dieser Testdatei automatisch das ä durch die Entity-Schreibweise $auml; ersetzt ...?
gruß,
wahsaga