php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 20.05.2011, 10:52  
Neuer Benutzer
 
Registriert seit: 12.05.2010
Beiträge: 22
PHP-Kenntnisse:
Anfänger
r2ls befindet sich auf einem aufstrebenden Ast
Standard Zeichensatz Konvertierung bricht ab

Hallo,

ich habe eine Applikation und DB in UTF-8 laufen. Nun will ich ein XML Dokument abspeichern (Typ DOMDocument), gebe hier den Zeichensatz ISO-8859-15 an. Die Daten versuche ich beim Einfügen ins DomDocument von UTF-8 nach ISO-8859-15 zu konvertieren, hier gibt es Fehler. Nicht im Zeichensatz enthaltene Zeichen sollen einfach entfernt werden.

$iso = iconv('UTF-8', 'ISO-8859-15//IGNORE', $in);

$iso = mb_convert_encoding ( $in , 'ISO-8859-15' , 'UTF-8');

$iso = utf8_decode($in);

klappt alles nicht:

Warning: DOMDocument: Save(): output conversion failed due to conv error, bytes 0xC3 0x3F 0x63 0x6B

encoder erroroutput conversion failed due to conv error, bytes 0xFC 0x72 0x7A 0x62

iconv(): Detected an illegal character in input string

Es wird dann nur ein halbes XML Dokument erzeugt, bricht an der Stelle des Fehlers ab.

r2ls ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.05.2011, 13:25  
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 r2ls Beitrag anzeigen
iconv(): Detected an illegal character in input string
Dann liegen deine Daten wohl nicht in korrektem UTF-8 vor ...
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 20.05.2011, 16:00  
Neuer Benutzer
 
Registriert seit: 12.05.2010
Beiträge: 22
PHP-Kenntnisse:
Anfänger
r2ls befindet sich auf einem aufstrebenden Ast
Standard

DB ist mit UTF-8 eingestellt und PHP auch:

default_charset utf-8
r2ls ist offline   Mit Zitat antworten
Alt 20.05.2011, 17:21  
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

Und die DB-Verbindung?

Je nach Adapter zum Beispiel:

mysql_client_encoding
mysql_set_charset

Du müsstest uns sonst wohl mehr Informationen geben (Code, Eingabewerte, …).
__________________
Blog | Buch | Kaloa
mermshaus ist offline   Mit Zitat antworten
Alt 06.03.2012, 20:42  
Erfahrener Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
eisenhans befindet sich auf einem aufstrebenden Ast
Standard Iconv

Zitat:
Zitat von ChrisB Beitrag anzeigen
Dann liegen deine Daten wohl nicht in korrektem UTF-8 vor ...
Ich weiß nicht, in welchem Format meine Daten reinkommen, ich kann es nur vermuten.

Mein Problem ist, daß ich iconv nicht handeln kann. Selbst mit den Parametern IGNORE oder TRANSLIT tritt eione Warnung auf, man kann sie nicht unterdrücken mit @, und try catch bringt auch nichts.

Kennt jemand einen vernünftigen Wrapper um iconv, der nicht abbricht.
__________________
Webstammtisch Oldenburg
eisenhans ist offline   Mit Zitat antworten
Alt 06.03.2012, 20:54  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Das ist Flickschusterei. Sorge für einen gescheiten Zeichensatz (Unicode), dann passts auch.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 06.03.2012, 21:17  
Erfahrener Benutzer
 
Registriert seit: 21.12.2009
Beiträge: 415
PHP-Kenntnisse:
Fortgeschritten
G.Schuster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hast du schonmal mb_detect_encoding() ausprobiert?
Das würde ich mal auf $in und auch auf $iso anwenden.
__________________
actra.development - Schwabstr. 2 - 70825 Münchingen
www.actra.de/velopment/ - eMail: php.de@actra.de
Zend Certified Engineer for PHP5
G.Schuster ist offline   Mit Zitat antworten
Alt 07.03.2012, 09:43  
Erfahrener Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
eisenhans befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von G.Schuster Beitrag anzeigen
Hast du schonmal mb_detect_encoding() ausprobiert?
Das würde ich mal auf $in und auch auf $iso anwenden.
Danke, werde ich mal ausprobieren.

@nikosch Ich bekomme Daten von mehr als 500 Quellen, und es können immer Fehler da drin sein.

Es muß doch eine Möglichkeit geben, fehlerhafte Daten mit iconv zu handeln ...
__________________
Webstammtisch Oldenburg
eisenhans ist offline   Mit Zitat antworten
Alt 07.03.2012, 13:58  
Neuer Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 1
ladmotl befindet sich auf einem aufstrebenden Ast
Standard

Falls die Daten utf-8 einkodiert kommen, darf man sie nicht noch einmal
einkodieren. Dieser Hinweis ist zwar etwas primitiv, ich gehe davon aus,
dass du es weisst, nicht desto trotz.

Meine Macro für die Erstellung eines Object-Childs eines Knotens:
***
function createXmlElmTxt($objDom, $ElmName, $ElmTxt) {
$objChild = $objDom->createElement($ElmName);
// beachte: es kommt vom soapService utf-8 einkodiert !
// $TextNode = $objDom->createTextNode(utf8_encode($ElmTxt) );
$TextNode = $objDom->createTextNode($ElmTxt);
$objChild->appendChild($TextNode);
return $objChild;
}
ladmotl ist offline   Mit Zitat antworten
Alt 07.03.2012, 14:22  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

BITTE BENUTZT BBCODE!

@TE: Nö. Muss es nicht. Warum muss jede Funktion alle Fehlerfälle abfangen? iconv hat einen Parameter, über den der korrekte Zeichensatz angegeben werden kann. Wenn Du die Funktion "anlügst" ist das Dein Problem.

[MOD: Verschoben]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch 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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP Script bricht nach 10 Sek. ab (durch Ajax?) Pauliene PHP-Fortgeschrittene 6 13.05.2011 12:22
VB-Prog mit COM-Objekt über shell_exec aufgerufen bricht ab emtiqor PHP-Fortgeschrittene 5 04.04.2011 20:17
[Erledigt] Netbeans Zeichensatz moveax1 Off-Topic Diskussionen 16 30.03.2011 23:15
Mail Encoding Konvertierung schlägt fehl für besondere Zeichen print_r PHP-Fortgeschrittene 3 16.12.2010 12:35
mySql-Admin Zeichensatz bestimmen hamburger PHP Tipps 2010 3 30.08.2010 17:57
Konvertierung von ASCII zu UTF-8 klappt nicht omex PHP Tipps 2010 7 26.07.2010 10:37
String mit Umlauten aus DB erhält bei der Verwendung in Bildpfad falschen Zeichensatz php2go PHP Tipps 2010 14 04.02.2010 18:36
27: Der ultimative Megakick der Superlative Nikolaus 2.0 Adventskalender 2009 4 23.12.2009 11:14
[Erledigt] Zeichensatz cp437? in utf8 Felix PHP Tipps 2009 7 23.07.2009 23:16
Zeichensatz & Kollation freakymiky Datenbanken 6 27.01.2009 10:23
Zeichensatz einer Formularfeldabfrage bestimmen Unzi PHP Tipps 2007 5 07.07.2007 21:18
Skript bricht ab - ohne Fehlermeldung PHP-Fortgeschrittene 10 11.10.2005 22:19
Zeichensatz ermitteln workaholic PHP Tipps 2005 3 07.04.2005 16:42
Dateiupload via Http bricht ab...hilfe! PHP Tipps 2004 2 14.06.2004 10:54

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
iconv bricht ab, php utf8 string funktion bricht bei fehler ab, iconv(): detected an illegal character in input string in, iconv(): detected an illegal character in input string, php zeichensatzkonvertierung, php iconv bricht ab, iconv bricht bei umlaut ab, shell_exec script bricht ab ohne fehlermeldung, mb_convert_encoding utf8_decode domdocument, xml leerzeichen bricht string ab, iconv(): detected an illegal character in input string umlaut, php iconv fehlermeldung unterdrücken, iconv umlaute iso-8859-1 node.js, iconv detected an illegal character in input string, php iconv umlaute datenbank verbindung, iconv php detected cp437, detected an illegal character in input string umlaute, mb_convert cp437, string bricht ab umlaut, iconv(): detected an illegal

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