php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.06.2011, 20:39  
Benutzer
 
Registriert seit: 10.08.2009
Beiträge: 72
PHP-Kenntnisse:
Fortgeschritten
mattla93 befindet sich auf einem aufstrebenden Ast
Standard Encodierungsproblem ISO-8859-1

Hallo,

ich melde mich wieder mal mit einem Encodierungsproblem:


Ich will folgendes realisieren:
Ich Übergebe einen String via POST, konvertiere ihn nach ISO-8859-1, mache ein urlencoding und sende ihn dann wiederum via POST mit CURL weg.

Für das €-Zeichen sollte %80 herauskommen, beim URLEncoding.
Mein Ergebnis ist immer: %E2%82%AC


Mein Rechner: Linux Debian Lenny, Apache2, PHP5
Mein Script:
PHP-Code:
$x $_POST['x'];
$x mb_convert_encoding($x,'ISO-8859-1');
echo 
urlencode($x); 
Die Seite, bzw. mb_internal_encoding ist auf utf8 standart eingestellt, da diese Daten an einen SMS Gateway gesendet werden, der leider nur ISO-8859-1 akzeptiert.

Obige Ausgabe von
PHP-Code:
mb_detect_encoding($x); 
ist "UTF-8"

Auch die Angabe des from-Encodings war erfolglos:
PHP-Code:
$x mb_convert_encoding($x,'ISO-8859-1','UTF-8'); 

Weiters habe ich versucht den String mittels iconv zu konvertieren. Einziger Unterschied ist, dass bei mb_detect_encoding "ASCII" rauskam.

Was ich auch noch ergebnislos funktioniert habe ist anstatt 'ISO-8859-1' 'latin1' zu verwenden.

Kann mir jemand helfen? Der SMS-Gateway hat anscheinend nur diese Windows Server (asp-Schnisstelle), da wird leider nur diese eine Encodierung akzeptiert.
mattla93 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.06.2011, 20:47  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Als was kommen die POST-Daten denn rein? UTF-8?

Generell: Es gibt kein Euro-Zeichen in ISO-8859-1.

- http://de.wikipedia.org/wiki/ISO_8859-1
__________________
Blog | Buch | Kaloa
mermshaus ist offline   Mit Zitat antworten
Alt 30.06.2011, 20:50  
Benutzer
 
Registriert seit: 10.08.2009
Beiträge: 72
PHP-Kenntnisse:
Fortgeschritten
mattla93 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mermshaus Beitrag anzeigen
Als was kommen die POST-Daten denn rein? UTF-8?

Generell: Es gibt kein Euro-Zeichen in ISO-8859-1.

- http://de.wikipedia.org/wiki/ISO_8859-1
Ja, als UTF-8

Komisch ist dann wenn ich %80 als sms Text an den Gateway sende, bekomme ich als SMS ein €-Zeichen. Was ist das dann welche Codierung?
Lt. SMS Hersteller Latin1.
mattla93 ist offline   Mit Zitat antworten
Alt 30.06.2011, 20:57  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Vermutlich Windows-1252. Oder irgendwie ISO-8859-1 mit Windows-1252-„Fallback“.

- http://de.wikipedia.org/wiki/ISO_8859-1#Windows-1252
- http://www.php.de/off-topic-diskussi...tml#post607080 (Browser rendern Eurozeichen/Eurosymbol in ISO-8859-1)
__________________
Blog | Buch | Kaloa
mermshaus ist offline   Mit Zitat antworten
Alt 30.06.2011, 20:59  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von mattla93 Beitrag anzeigen
Lt. SMS Hersteller Latin1.
Latin-1 ist ISO-8859-1.

Und das enthält in seiner „reinen“ Form das Euro-Zeichen nicht - das gibt es in der Erweiterung ISO-8859-15.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 30.06.2011, 21:07  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

http://htmlhelp.com/reference/charset/
http://www.gerd-riesselmann.de/weben...s-euro-zeichen
http://de.wikipedia.org/wiki/Eurozeichen
http://de.wikipedia.org/wiki/ISO_8859-15

%80 <- Hex-Notierung für das Dezimal-Equivalent 128

128 wird von einigen Anwendungen als Eurozeichen interpretiert sofern es vom ISO-8895-1 Charset ausgeliefert wird. Tatsächlich enthalten im ISO-8895-1 (latin1) ist es nicht, allerdings schon im 1999 verabschiedeten ISO-8895-15. Ich vermute daher das deine API ISO-8895-15 nutzt, und nicht ISO-8895-1 (latin1), es sei denn der gerade geschilderte Fall tritt ein.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 30.06.2011, 21:22  
Benutzer
 
Registriert seit: 10.08.2009
Beiträge: 72
PHP-Kenntnisse:
Fortgeschritten
mattla93 befindet sich auf einem aufstrebenden Ast
Standard

Mit der Windows-1252 Encodierung hat es so geklappt, bei ISO-8895-15 hat es nicht geklappt, da erhalte ich als Ausgabe %A4, was wiederum nicht vom Gateway unterstützt wird.

Es wurde von einem

Zitat:
Vermutlich Windows-1252. Oder irgendwie ISO-8859-1 mit Windows-1252-„Fallback“.
Sicher, denn lt. Doku ist die Encodierung ISO-8859-1. Aber wie programmiere ich diesen "Fallback", ist das so bereits richtig:

PHP-Code:
mb_convert_encoding($x,'Windows-1252','UTF-8'); 
mattla93 ist offline   Mit Zitat antworten
Alt 30.06.2011, 21:32  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Im Prinzip schon, ja. Weil Windows-1252 eine Obermenge von ISO-8859-1 ist, heißt es im Prinzip, dass der Service wohl einfach Windows-1252 akzeptiert, auch wenn die es nicht unbedingt so bezeichnen.
__________________
Blog | Buch | Kaloa
mermshaus ist offline   Mit Zitat antworten
Antwort


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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php iso, php to iso, php urlencode utf-8, iso 8895-15 nach utf-8, iso 8895-1, php iso encode, php iso 8859, php iso-8859-1 to url, php post utf8 iso, using iso urlencoded euro in utf8 urldecode, html , php iso-8859-1 utf-8 euro, euro zeichen iso, php utf8 to iso 8895-15, php post in iso, iso 8895-1 oder 8895-15, php post kein iso, euro symbol html urlencoded, euro zeichen $15 $80, iso-8859-1 php script

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:59 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