AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichencodierung umwandeln

Offene Frage von "Synollus"
Ein Thema von Synollus · begonnen am 12. Mär 2010 · letzter Beitrag vom 15. Mär 2010
Antwort Antwort
Synollus

Registriert seit: 29. Dez 2008
49 Beiträge
 
#1

Zeichencodierung umwandeln

  Alt 12. Mär 2010, 22:45
Hallo,

ich habe folgende Situation:

- ich habe eine Datenbank mit UTF8-Codierung. Daten die dort eingetragen oder ausgelesen werden, werden mit utf8_encode / utf8_decode verarbeitet.
- die Website ist im UTF8 Format (Meta-Tags)

Nun möchte ich auf der Seite Daten aus der Datenbank auslesen und in einem Link als Parameter verstauen (kein Problem mit UTF8_encode). Wenn dieser Link aufgerufen wird, werden die Daten an den entsprechenden Server übermittelt, der allerdings die Daten im iso-8859-1-Format möchte.

Ich hatte schon 2 Möglichkeiten ausprobiert, bei denen aber beide Male Frage- oder Sonderzeichen bei Umlauten auftraten. Leider habe ich nicht die Möglichkeit alles auszuprobieren, da mir der "Kunde" er E-Mail erst antworten muss, ob es klappt.

Bei unserem letzten Versuch hatte ich folgendes mit den Daten aus der DB gemacht:

Code:
html_entity_decode(utf8_encode($irgend['was']))
Die Daten im Quelltext bzw. im Link waren fehlerfrei in den Umlauten, nach Anklicken und Übertragen an den Kunden, jedoch nicht mehr. Dort kamen dann Fragezeichen zum Vorschein.

Kann mir eventuell jemand weiterhelfen, ohne dass ich jetzt viel rumprobieren muss?
  Mit Zitat antworten Zitat
Synollus

Registriert seit: 29. Dez 2008
49 Beiträge
 
#2

Re: Zeichencodierung umwandeln

  Alt 13. Mär 2010, 17:32
Nicht falsch verstehen, aber ich bin ein bisschen verwundert, dass sich noch niemand gemeldet hat.

Ich dachte das wäre etwas ganz einfaches oder ist etwas unklar?
  Mit Zitat antworten Zitat
Synollus

Registriert seit: 29. Dez 2008
49 Beiträge
 
#3

Re: Zeichencodierung umwandeln

  Alt 14. Mär 2010, 22:58
Man möge mir meinen Dreifachpost verzeihen, aber ich konnte meinen letzten Beitrag nicht mehr editieren.

Ich habe nochmal Recherchen angestellt und daraufhin folgendes getestet:

Code:
iconv("UTF-8", "ISO-8859-1", $str); // Illegal Charakter found ...
Code:
iconv("UTF-8", "ISO-8859-1", utf8_decode($str)); // Half nicht
Code:
iconv("UTF-8", "ISO-8859-1", utf8_encode($str)); // Half nicht
Ich weiß echt nicht mehr, was ich noch probieren soll.

Hat denn keiner eine Idee?
  Mit Zitat antworten Zitat
Benutzerbild von XHelp
XHelp

Registriert seit: 12. Jul 2004
Ort: Duisburg
172 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Zeichencodierung umwandeln

  Alt 15. Mär 2010, 01:24
Es würde sicherlich helfen, wenn du ein Minimalbeispiel posten könntest.
Normalerweise müsste es mit utf8_encode und utf8_decode problemlos klappen, also könnte die Ursache woanders liegen.
Alex
Von allen Dingen die mir verloren gegangen,
hab ich am meisten an meinem Verstand gehangen
  Mit Zitat antworten Zitat
Synollus

Registriert seit: 29. Dez 2008
49 Beiträge
 
#5

Re: Zeichencodierung umwandeln

  Alt 15. Mär 2010, 01:37
Hi,

viel kann ich da nicht posten. Wie gesagt, ich hole die Daten (UTF8) aus der DB (MySQL, MyISAM). Dann werden die Parameter an eine URL rangehängt, à la:

Code:
https://www.test.de/test.php?data=<?php echo $test['test']...
Dazwischen findet dann die Konvertierung statt. Vielleicht ist es von Bedeutung, dass die Datei kein Unicode ist, sondern ganz normal unter Windows gespeichert und via FTP hochgeladen wurde? (Ich bin mir nicht sicher, ob Unicode hier eine Rolle spielt).

Werden die Daten im Quelltext richtig dargestellt bzw. der Link im Browser richtig angezeigt, klicke ich rauf und die Daten werden an einen anderen Server übertragen, der sie als ISO-8895-1 erwartet und vermutlich in die DB (ISO-8895-1) schreibt.

Dort kommen ä,ö,ü, etc. als Fragezeichen, Brüche, oder sonstiges an, je nachdem welche Kodierungs- / Dekodierungsfunktionen ich vorher benutzt habe.
  Mit Zitat antworten Zitat
Benutzerbild von XHelp
XHelp

Registriert seit: 12. Jul 2004
Ort: Duisburg
172 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Zeichencodierung umwandeln

  Alt 15. Mär 2010, 01:56
Was sagt denn dein Server zu HTTP_ACCEPT_CHARSET?
Ich bin mir dennoch ziemlich sicher, dass der Fehler nicht in den Einstellungen, sondern im Quelltext ist. Und ohne Quelltext lässt sich auch schlecht sagen wo.
[edit]
Wenn du z.B. utf8_decode bei NICHT utf strings machst, dann kommen "Fragezeichen" raus. Also müsste etwas bei den Verschachtelungen falsch sein
[/edit]
Alex
Von allen Dingen die mir verloren gegangen,
hab ich am meisten an meinem Verstand gehangen
  Mit Zitat antworten Zitat
Synollus

Registriert seit: 29. Dez 2008
49 Beiträge
 
#7

Re: Zeichencodierung umwandeln

  Alt 15. Mär 2010, 16:05
HTTP_ACCEPT_CHARSET ISO-8859-1,utf-8;q=0.7,*;q=0.7

Hier der Quellcode:

Code:

$ds = mysql_fetch_array(mysql_query("SELECT * FROM data WHERE id='".$id."' LIMIT 1"));
function convi($str)
  {
     //return iconv("UTF-8", "ISO-8859-1", html_entity_decode(utf8_encode($str)));
     return $str;
  }

echo '<iframe src="https://www.google.com/lp/d_k5/form.php
?anrede='.(($ds['anrede'] == 0) ? 'Herr' : 'Frau').'
&vorname='.convi($ds['vorname']).'
&nachname='.convi($ds['nachname']).'
&strasse='.convi($ds['strasse']).'
&hausnummer='.convi($ds['nr']).'
&ort='.convi($ds['ort']).'
&email='.convi($ds['email']).'
&gebdatum='.convi($date[2]).'-'.convi($date[1]).'-'.convi($date[0]).'
&wid='.$wid.'" style="..."></iframe>
<noframes>
  ...
</noframes>';
convi ist nur eine Wrapper(?)-Funktion, damit ich beim Testen von Dekodierungsfunktionen nicht jedesmal alles ändern muss.
  Mit Zitat antworten Zitat
Antwort Antwort


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz