Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP - Encoding - Problem

Frage Entwicklung

Mitglied: Bierkistenschlepper

Bierkistenschlepper (Level 2) - Jetzt verbinden

27.07.2009, aktualisiert 15:13 Uhr, 7950 Aufrufe, 7 Kommentare

Hallo, ich habe folgendes Problem mit dem Encoding.

MySQL DB ist UTF8, Im Header steht
<!DOCTYPE html PUBLIC " -W3CDTD XHTML 1.0 Transitiona lEN"
"http:
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="de">
<head>

<title>Stammtisch f&uuml;r Schwerh&ouml;rige Freiburg</title>
<meta http-equiv="content-type" content="text/html; charset="utf-8">

also ebenfalls UTF8.

Folgendes Problem:
Wenn ich in die DB schreibe passiert bei folgender Konfiguration des Strings in PHP unterschiedliches in IE und Opera.

$kommentar = trim($_POST['kommentar']))
IE alles klar, Opera macht aus äüöß Ã¤Ã¼Ã¶ÃŸ

$kommentar = utf8_decode(trim($_POST['kommentar']))
Opera: alles ok, IE macht aus äüöß ??

$kommentar = utf8_encode(trim($_POST['kommentar']))
Geht in beiden Browsern nicht-->klar

Aber wie zum Henker kriege ich den String in allen Browsern richtig in die DB geschrieben?

Es geht um www.shstammtisch.de
Mitglied: godlie
27.07.2009 um 15:41 Uhr
Schmeis den meta tag content-type mal raus und schick bevor du irgendwelche ausgaben machst
mal ein
01.
header("Content-Type: text/html; charset=UTF-8")
an den Browser damit der sich auskennt was da für Zeugs ankommen sollte.
Bitte warten ..
Mitglied: filippg
27.07.2009 um 15:45 Uhr
Hallo,

es geht doch um das Encoding der Daten, die der Client an den Server schickt oder? Dann ist eine encoding-Definition im Seitenheader zwar sicher nicht falsch, aber nur begrenzt hilfreich. Lösung: füge in das <form>-Tag ein "accept-charset="-Attribut ein. Damit solltest du zumindest von allen Browser das gleiche Ergebnis erhalten.

Gruß

Filipp
Bitte warten ..
Mitglied: Bierkistenschlepper
27.07.2009 um 15:59 Uhr
Ein accept-charset ist bereits da...
echo '<form action="termine.php?eid='.$event_to_show.'" method="post" accept-charset="utf-8">';
Bitte warten ..
Mitglied: Supermax
27.07.2009 um 20:24 Uhr
Schau mal mit einem geeigneten Tool (z.B. Fiddler für IE, Live HTTP Headers für Firefox), welches Encoding im HTTP-Header "Content-Type" angegeben ist. Wenn im Dokument selbst eine andere Angabe steht als der Webserver in seinen Headern ankündigt, geraten manche Browser aus dem Tritt. Standardkonform ist das Verhalten, daß die Header direkt vom Webserver Vorrang vor den Angaben im entsprechenden Meta-Tag haben.

Eventuell schafft eine .htaccess (falls der Webserver Apache zum Einsatz kommt) mit der Zeile
01.
AddDefaultCharset Off
oder
01.
AddDefaultCharset "gewünschte Codierung"
Abhilfe.
Bitte warten ..
Mitglied: Bierkistenschlepper
28.07.2009 um 00:31 Uhr
Der erste Tipp hats gebracht. Jedenfalls klappts nun in Opera, IE und FF.

Offenbar ist die Meta-Angabe nicht ganz standardkonform, jedenfalls meckert bei mir immer der Validator.

Und noch eine Frage:

Bei Emails habe ich das gleiche Problem. Ich nutze den PHPmailer. Welche Codierung sollte man bei Mails verwenden? Umlaute werden aktuell im Thunderbird als Fragezeichen dargestellt. Es handelt sich um Rein-Text-Mails ohne HTML (sonst wäre die Frage ja nicht aufgekommen)
Bitte warten ..
Mitglied: Supermax
28.07.2009 um 07:39 Uhr
Stimmt vor dem utf-8 ist das " zu viel, der HTML-Parser erkennt
01.
<meta http-equiv="content-type" content="text/html; charset="utf-8">
nur als
01.
content-type: text/html; charset=
Bezüglich der Mails solltest du das Encoding verwenden, in dem deine Texte (aus dem Script oder aus der Datenbank etc.) vorliegen. Wenn deine Programmtexte und Datenbank-Textwerte in UTF-8 vorliegen, dann nimm UTF-8, ansonsten die passende 8-bit Codierung. Die meisten modernen eMail-Clients und webmailer können problemlos mit UTF-8 codierten Mails umgehen.
Bitte warten ..
Mitglied: Bierkistenschlepper
22.12.2009 um 01:12 Uhr
Ich muss mich leider nochmals melden.

Folgendes Problem:

Datenbank ist UTF8_general_ci.

RSS-FEED ist Iso 8869-1, steht im Header und im xml-Tag. Soweit so gut. Leider verhalten sich die Browser völlig unterschiedlich.

Wenn ich nun ein utf8_decode um einen String aus der DB mache, dann passiert folgendes: Opera zeigt es korrekt an, der IE zeigt nur Fragezeichen. Der Quelltext enthält in beiden Browsern auch nur Fragezeichen und es fehlen normale Buchstaben. Warum zeigt Opera (also der HTML-Interpreter) was anderes an, als im Quelltext steht und warum steht im Quelltext keine Umlaute?

Hier ein Link zum Feed: www.shstammtisch.de/rss.php

hier ein Scnipsel Code
while($_ROW = mysql_fetch_assoc($result)){
$date = strtotime($_ROW['datum']);
$name=utf8_decode($_ROW['name']);
$description = utf8_decode($_ROW['description']);
$content = utf8_decode("Was? ".$name."\n".
"Wo? ".$_ROW['place']."\n".
"Wann? ".date("d.m.Y",$date." ab ".date("G:i", $date)."\n".
"Beschreibung: \n".$description));

und Oben steht in der Datei Stammtisch für..., also mit ü nur der Browser zeigt kein ü an.
Bitte warten ..
Ähnliche Inhalte
PHP
PHP PDO Problem (1)

Frage von Tiggr1994 zum Thema PHP ...

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Debian
Squid Proxyserver - HTTPS Problem (1)

Frage von Cartman zum Thema Debian ...

Windows Server
Problem mit Webdav und Webserver IIS (3)

Frage von JUJUS31 zum Thema Windows Server ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (24)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (18)

Frage von theoberlin zum Thema Windows Server ...