Wie den Charset / die Codierung herausfinden?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
ausgabe
code
codierung
dank
datei
datum
file
header
listen
not
null
nutzen
speichern
text
type
url
vorhaben
zeile
ziel
-
Hallo
wenn ich den header Content-Type auf ISO-8859-1 setze
dann kommt mit mb_detect_encoding() trotzdem UTF-8
warum?
<?php header('Content-type: text/html; charset=ISO-8859-1'); $ausgabe[0] = "ich bin ein hübscher Text"; $ausgabe[1] = "Auch mit Umlauten die schön sind"; $ausgabe[2] = "Ich bin nicht utf8-codiert"; $encoding = mb_detect_encoding($ausgabe[0]); echo $encoding; // ---- Ausgabe ist: UTF-8 ?>
wie bekomme ich an die "richtige" Codierung / den korrekten charset ???
Danke!
Beitrag zuletzt geändert: 26.9.2011 12:03:30 von tengames -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wichtig ist auch, dass die Datei mit der entsprechenden Codierung geschrieben wurde.
-
Die Daten habe ich (under Windows7) in eine .txt Datei geschrieben
je Zeile ein Text-Block
und lese sie mit file() in das Array $ausgabe
<?php $tdata = file($meine_txt_datei); $ausgabe = array(); foreach($tdata as $tzeile) { $tzeile = trim(chop($tzeile)); // Zeilen-Umbruch entfernen if (!empty($tzeile)) { // keine leeren Zeilen einlesen $ausgabe[] = $tzeile; } } ?>
also im Text stehen Umlaufe ä ö ü im "Klartext" also ISO-8859-1 oder nicht ?
Beitrag zuletzt geändert: 26.9.2011 13:47:33 von tengames -
Ein ä,ö,ü kann auch in UTF-8 dargestellt werden. Daran scheiterts nicht.
Mich würd mal interessieren, was für eine Anwendung du damit planst, also was ist dein Ziel. Wenn wir wissen, wofür du es brauchst, kann man dir vllt leichter helfen an dieses Ziel zu kommen.
Liebe Grüße -
also .... eigentlich ganz einfach
es geht um CSV Daten, die ich in der Datenbank (MySQL) cachen will
da die einzelnen CSV-Listen von verschiedenen Quellen sind,
sind die Inhalte u.a auch in unterschiedlicher codierung
für das Speichern in der DB will ich aber eine einheitliche codierung
also muss ich zuerst rausfinden, welche codierung die Quell-Daten sind
um sie dann ggf. die codierung (Charset) "passend" für die DB zu ändern
denn wenn ich utf8 nochmal utf8_encode() mache kommt totaler müll bei raus
meine MySQL Tabelle habe ich mit DEFAULT CHARSET=utf8 angelegt
aber trotz mysql_real_escape_string() vor Speichern kommt z.T. aber kein utf-8 in der DB an
$spalte1 = mysql_real_escape_string($string1); // bei bestehender Verbindung
was mich eh wundert,
sollte doch eigentlich den DEFAULT CHARSET der MySQL verbindung nutzen, oder?
also
wie erkenne ich "unterschiedliche" Charset / Codierung von Daten aus CSV (txt)
um diese für den Eintrag in die DB "einheitlich" zu formen ?
was empfeht ihr, utf-8 oder latin1 oder welchen DEFAULT CHARSET sollte man nehmen?
?
Beitrag zuletzt geändert: 26.9.2011 19:47:27 von tengames -
Also du hast doch genau erreicht, was du wolltest. Das detect funktioniert einwandfrei und gibt die den Zeichensatz zuverlässig zurück.
Außerdem rate ich dir zu utf8. Das wurde speziell dafür gemacht einheitliche Zeichensätze einzuführen, also sollte man es auch nutzen.
Welche Kollation von utf8 du nimmst ist abhängig von deinem Vorhaben. -
reimann schrieb:
Welche Kollation von utf8 du nimmst ist abhängig von deinem Vorhaben.
ich denke mal general
einfach nur bei CREATE TABLE am Ende: DEFAULT CHARSET=utf8
vielleicht liegt da ja der Fehler, heisst es utf8 oder utf-8 (in MySQL)
ich habe den folgenden Code:
$setup_result1 = mysql_query("CREATE TABLE IF NOT EXISTS `".$db_tabelle1."` ( `id` int(9) NOT NULL AUTO_INCREMENT, `titel` varchar(250) NOT NULL, `url` varchar(250) NOT NULL, `descr` text NOT NULL, `img` varchar(250) NOT NULL, `kategorie` varchar(100) NOT NULL, `source` varchar(100) NOT NULL, `status` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ");
oder muss ich für jede Spalte den Charset definieren, .... wie?
bzw. welche Kollation könnt Ihr mir empfehlen ?
Danke
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage