php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.07.2006, 23:03  
Neuer Benutzer
 
Registriert seit: 10.07.2006
Beiträge: 4
elbjoern
Standard urlencode problem

hallo liebes forum,
ich habe eine frage, die wahrscheinlich/hoffentlich recht einfach zu beantworten ist. ich habe auch schon nach einer lösung gesucht, klar. leider weiß ich aber nicht so genau wonach ich (noch) suchen soll. komme leider nicht weiter.
hier also das problem:
iich lese aus einer datenbank (utf-8) arabische daten aus. das funktioniert recht gut. auch darstellen ist kein problem. nun möchte ich diese daten aber einer url übergeben, was natürlich zu problemen führt, weswegen ich den versuch mit urlencode oder rawurlencode ausprobiert habe. leider funktioniert das nicht, da die url nur äußerste komische encodete daten annimmt. hier das beispiel:
utf-8: Ačīn
urlencodet: A%C4%8D%C4%ABn
so möchte es die url haben: A%26%23269%3B%26%23299%3Bn

aber wie komme ich darauf? also wie kann ich die daten in die letzte form umwandeln???
würde mich freuen, wenn mir jemand einen tipp geben würde!
vielen dank,
elbjoern
elbjoern ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.07.2006, 23:22  
Gast
 
Beiträge: n/a
Standard

Zitat:
so möchte es die url haben: A%26%23269%3B%26%23299%3Bn
Das ist decodiert: Ačīn

Warum willst Du das so haben?
 
Alt 10.07.2006, 23:36  
Neuer Benutzer
 
Registriert seit: 10.07.2006
Beiträge: 4
elbjoern
Standard

hi bruchpilot,
danke für die schnelle antwort!
hm, wie komme ich denn darauf? mit htmlentities wird das ja anders umgewandelt?

ich brauche das um es in eine url einfügen zu können und diese aufrufen zu können. anders wird die url leider falsch aufgerufen.

gruß,
elbjoern
elbjoern ist offline  
Alt 10.07.2006, 23:50  
Gast
 
Beiträge: n/a
Standard

Aber A%C4%8D%C4%ABn ist die korrekte url-codierte Darstellung der utf-8 Zeichen-/Byte-kette für Ačīn

A%C4%8D%C4%ABn ist "nur" die korrekte url-codierte Darstellung von Ačīn und das wiederum ist die entity Darstellung obiger utf-8 Darstellung. Es ist also eine Indirektion mehr - die eigentlich überflüssig evtl sogar störend sein sollte.

http://bruchpilot.br.funpic.de/beispiele/elbjoern-1.php
 
Alt 11.07.2006, 00:19  
Neuer Benutzer
 
Registriert seit: 10.07.2006
Beiträge: 4
elbjoern
Standard

kannst du mir erklären wie du von Ačīn auf A& #269;& #299;n kommst? wenn ich die umwandlung mit htmlspecialchars versuche, dann kommt da "AÄ�Ä«nAÄ�Ä«n" raus?
elbjoern ist offline  
Alt 11.07.2006, 00:26  
Gast
 
Beiträge: n/a
Standard

echo urldecode('A%26%23269%3B%26%23299%3Bn');

Andersherum: keine Ahnung. Ich vermeide entities, wo ich kann.
 
Alt 11.07.2006, 01:20  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hi "elbjoern", herzlich willkommen.

Schau dir mal die Ausgabe von folgendem Code an. Die HTML-Entitäten sind aber absolut unnötig vor der Kodierung in ein gültiges URL-Format. Wandle also erst mit urlencode() um und dann, wenn die Ausgabe in eine HTML-Seite läuft mit html_entities() bzw. eben den multibyte-Funktionen. Dadurch wird dann ein & noch korrekt in ein & übersetzt, was jedoch am Linkziel nichts ändert, nur eben daran, dass du dann korrektes HTML hast und es so keine Fehlinterpretationen mehr geben kann.

Auf dem Server kommt A%C4%8D%C4%ABn dann korrekt als Ačīn an - zumindest mit der "UTF-8-Brille". Du musst da also nichts mehr "zurück-umformen".

Liebe Grüße,
Basti

PHP-Code:
<?php
$s 
'Ačīn';
$sEncoded urlencode($s);
$sRedecoded urldecode($sEncoded);

echo 
"$sEncoded\n$sRedecoded\n";

$aEncodings mb_list_encodings();

foreach (
$aEncodings as $sEncoding) {
    echo 
"\n";
    echo 
str_pad($sEncoding20' ');
    echo 
urlencode(mb_convert_encoding($s$sEncoding'UTF-8'));
}
?>
Augabe:
Code:
A%C4%8D%C4%ABn
Ačīn

pass                A%0D%2Bn
auto                A%0D%2Bn
wchar               A%0D%2Bn
byte2be             %00A%01%0D%01%2B%00n
byte2le             A%00%0D%01%2B%01n%00
byte4be             %00%00%00A%00%00%01%0D%00%00%01%2B%00%00%00n
byte4le             A%00%00%00%0D%01%00%00%2B%01%00%00n%00%00%00
BASE64              QcSNxKtu
UUENCODE            A%0D%2Bn
HTML-ENTITIES       A%26%23269%3B%26%23299%3Bn
Quoted-Printable    A%3DC4%3D8D%3DC4%3DABn
7bit                An
8bit                A%0D%2Bn
UCS-4               %00%00%00A%00%00%01%0D%00%00%01%2B%00%00%00n
UCS-4BE             %00%00%00A%00%00%01%0D%00%00%01%2B%00%00%00n
UCS-4LE             A%00%00%00%0D%01%00%00%2B%01%00%00n%00%00%00
UCS-2               %00A%01%0D%01%2B%00n
UCS-2BE             %00A%01%0D%01%2B%00n
UCS-2LE             A%00%0D%01%2B%01n%00
UTF-32              %00%00%00A%00%00%01%0D%00%00%01%2B%00%00%00n
UTF-32BE            %00%00%00A%00%00%01%0D%00%00%01%2B%00%00%00n
UTF-32LE            A%00%00%00%0D%01%00%00%2B%01%00%00n%00%00%00
UTF-16              %00A%01%0D%01%2B%00n
UTF-16BE            %00A%01%0D%01%2B%00n
UTF-16LE            A%00%0D%01%2B%01n%00
UTF-8               A%C4%8D%C4%ABn
UTF-7               A%2BAQ0BKw-n
UTF7-IMAP           A%26AQ0BKw-n
ASCII               A%3F%3Fn
EUC-JP              A%8F%AB%AD%8F%AB%C5n
SJIS                A%3F%3Fn
eucJP-win           A%8F%AB%AD%8F%AB%C5n
SJIS-win            A%3F%3Fn
JIS                 A%1B%24%28D%2B-%2BE%1B%28Bn
ISO-2022-JP         A%3F%3Fn
Windows-1252        A%3F%3Fn
ISO-8859-1          A%3F%3Fn
ISO-8859-2          A%E8%3Fn
ISO-8859-3          A%3F%3Fn
ISO-8859-4          A%E8%EFn
ISO-8859-5          A%3F%3Fn
ISO-8859-6          A%3F%3Fn
ISO-8859-7          A%3F%3Fn
ISO-8859-8          A%3F%3Fn
ISO-8859-9          A%3F%3Fn
ISO-8859-10         A%E8%B4n
ISO-8859-13         A%E8%EEn
ISO-8859-14         A%3F%3Fn
ISO-8859-15         A%3F%3Fn
ISO-8859-16         A%0D%2Bn
EUC-CN              A%01%0D%A8%A9n
CP936               A%3F%A8%A9n
HZ                  A%3F%7E%7B%28%29%7E%7Dn
EUC-TW              A%3F%3Fn
BIG-5               A%3F%3Fn
EUC-KR              A%01%0D%01%2Bn
UHC                 A%3F%3Fn
ISO-2022-KR         A%3F%3Fn
Windows-1251        A%3F%3Fn
CP866               A%3F%3Fn
KOI8-R              A%3F%3Fn
ArmSCII-8           A%3F%3Fn
Basti ist offline  
Alt 11.07.2006, 11:39  
Neuer Benutzer
 
Registriert seit: 10.07.2006
Beiträge: 4
elbjoern
Standard

danke basti, danke bruchpilot,

ihr habt mit sehr gut geholfen!!!

habe es jetzt so gelöst:
urlencode(mb_convert_encoding($str,"HTML-ENTITIES","auto"));

warum das so seien muss kann ich euch auch nicht sagen. es geht halt nicht anders, auch wenn es schlecht ist. dafür bin ich nicht verantwortlich :wink:

ciao, elbjoern
elbjoern ist offline  
Alt 11.07.2006, 16:11  
Gast
 
Beiträge: n/a
Standard

Eigenartig, aber nun gut.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Array Problem [Ansatz ?] PHP Tipps 2005 0 27.01.2005 18:24
Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
urlencode iso, urlencode problem, php urlencode fehler, php urldecode fehler, javascript urlencode vermeiden, urlencode iso-8859-15, urlencode php5.3 problem, urlencode übersetzt nicht das &, mail \=3da0\, php urlencode utf8, iso-8859-15 urlencode ä, url-encode problem, url encoding arabisch, php urlencode &auml;, php urlencode arabisch, php encoding c4, php code in smarty urlencode, arabisch 3fn übersetzung in deutsch, php urlencode iso, urlencode iso latin-9 php

Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.