Hast du jetzt schon überprüft, ob die Daten wirklich korrekt in der Datenbank stehen? Für mich sieht es so aus, als wurde Zeichenmüll gespeichert.
							
						
					Zeichensatzproblem bei eMails
				
					Collapse
				
			
		
	X
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Ich werde morgen testen, welchen Zeichensatz die Variable hat, die dann in die Datenbank gespeichert wird - also VOR dem Eintrag.
 Falls bereits diese UTF8 enthält - kann ich diesen mittels utf8_decode() in latin1 umwandeln? Oder weißt du, welcher Befehl dann passen würde?
 
 Ich möchte mich jedenfalls jetzt schon herzlich für deine Hilfe und Zeit bedanken!!
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Gerade probiert, dieses Ergebnis
 erhalte ich auch mitCode:test: latin1 encoding: UTF-8 
 und dennoch wird alles richtig mitPHP Code:echo "test: ",mysql_client_encoding(),"<br>";
 echo "encoding: ",mb_detect_encoding($text),"<br>";
 
 dargestellt. Somit kann es daran eigentlich nicht liegen.HTML Code:<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Der Browser interessiert sich nicht für den Meta-Tag. Da kannst du reinschreiben, was du willst. Wichtig ist welcher Zeichensatz im HTTP-Header angegeben ist.
 
 Du kannst dir im Browser übrigens auch anzeigen lassen, welche Zeichenkodierung er wirklich verwendet. Schon mal gemacht?PHP Code:header('Content-Type: text/html; charset=ISO-8859-1');
 Last edited by h3ll; 20-03-2013, 23:35.
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Ja, ich gebe es trotzdem immer an, da es bei älteren Browsern nicht unbedingt in jedem Fall funktionierte.Originally posted by h3ll View PostDu kannst dir im Browser übrigens auch anzeigen lassen, welche Zeichenkodierung er wirklich verwendet.
 
 Der dritte Parameter macht erst den Unterschied, da dann strict.
 Mit dem dritten Parameter true lässt sich überprüfen, ob es wahr ist oder nicht!
 Die vorletzte Zeile ergibt false, weil es mit strict "streng genommen" kein UTF-8 ist, sondern ISO-8859-1.
 Geht auch so:PHP Code:echo "test: ",mysql_client_encoding(),"<br>"; // test: latin1
 echo mb_detect_encoding($text)."<br>"; // UTF-8
 echo mb_detect_encoding($text, "UTF-8")."<br>"; // UTF-8
 echo mb_detect_encoding($text, "iso-8859-1")."<br>"; // ISO-8859-1
 echo mb_detect_encoding($text, "UTF-8", true)."<br>"; //
 echo mb_detect_encoding($text, "iso-8859-1",true)."<br>"; // ISO-8859-1
 
 PHP Code:echo "test: ",mysql_client_encoding(),"<br>";
 echo mb_detect_encoding($text, "UTF-8, UTF-7, ASCII, iso-8859-1, iso-8859-15", true)."<br>";
 /* Ausgabe:
 test: latin1
 ISO-8859-1
 */
 Last edited by Melewo; 21-03-2013, 01:33.
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Ändere mal die Zeile in:Originally posted by freakgesicht View PostWie gesagt bekomme ich als Ergebnis:PHP Code:echo "encoding: ",mb_detect_encoding($message),"<br>";
 
 test: latin1
 encoding: UTF-8
 PHP Code:function CODING($string) {
 $zeichen = array(
 "UTF-8", "UTF-7", "ASCII", "iso-8859-1", "iso-8859-2",
 "iso-8859-2", "iso-8859-4", "iso-8859-5", "iso-8859-6",
 "iso-8859-7", "iso-8859-8", "iso-8859-9", "iso-8859-10"
 );
 return mb_detect_encoding($string, $zeichen, true);
 }
 echo "encoding: ".CODING($message)."<br>";
 
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Hallo Melewo, hallo h3ll!
 
 Da ich massiv Zeitdruck wegen meines Scripts habe, entschied ich mich nun für den einfach Workaround des reinen Text-Mails. Da funktioniert alles problemlos. Ich versende den Text nun mit UTF-8 im Mailheader.
 
 Bitte fasst das nicht als Geringschätzung eurer Hilfsbereitschaft auf, aber ich bin einfach nur froh, dass zumindest damit alles funktioniert.
 
 Sobald ich wieder ein bisschen mehr Zeit habe, werde ich eure Vorschläge gerne prüfen, weil auch mich interessiert es, wo hier mein Fehler liegt.
 
 Also nochmals herzlichen Dank an euch, Melewo und h3ll!!! Ihr seid super!
 Comment
 
          
Comment