ö,ä,ü werden komisch dargestellt
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
browser
code
codierung
datei
datenbank
editor
ersetzen
header
http
problem
quellcode
richtigen zeichensatz
set
sonderzeichen
speichern
text
umgehen
umlaut
url
zeichen
-
ich habe folgenden code in jeder datei (html,php) eingesetzt.
aber die ö,ä,ü werden trotzdem als ? oder sonstigen zeichen angezeigt.
<head> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta name="expires" content="0"> <meta http-equiv="imagetoolbar" content="false"> <meta name="robots" content="noarchive"> <meta name="robots" content="NOINDEX,NOFOLLOW"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> </head>
was habe ich falsch gemacht? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
internetplattform schrieb:
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
was habe ich falsch gemacht?
Hast du dir den Code mal angeschaut?
Wenn du erst sagst, es soll utf-8 verwendet werden, dann aber doch ISO-8859-1 willst, klappt das bestimmt nicht.
Verwende bitte nur eines von beiden, außerdem solltest du die Zeichenkodierung deiner Datei in einen guten Editor (z.B.: Notepad++) checken, meistens passt die Kodierung der Datei nicht .... -
Zwei unterschiedliche Charsets
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
Und dann ist es nicht unwichtig, wie die Datei abgespeichert wurde. Auch hier auf das richtige charset achten. Jeder Editor bietet dir in den Einstelllungen dies an (ohne BOM abspeichern).
In der Datenbank auch alles mit der richtigen Kollation gespeichert? Falls denn eine genutzt wird.
Der Zugriff auf die Datenbank auch richtig gesetzt?
Verwende am besten immer UTF-8, so kommt es dann auch zu keinen Problemen, wenn du mal Scripte von anderen nutzt (wenn es denn ein richtiger Programmierer war).
Wenn man denn alles immer beherzigt und sich dies als Standart einprägt, dann kommt es eigentlich nie zu Problemen mit den Umlauten und Sonderzeichen. -
es spielt keine rolle ob ich nur die zeile mit utf8 oder iso lasse, die zeichen sehen immer noch gleich aus.
was meint ihr mit "wie die datei gespeeichert ist"?
ich kann nirgends beim speichern sagen in welcher codierung er es speichern soll.
die datei ist .php gespeichert.
oder hängt es vom webserver ab? -
internetplattform schrieb:
was meint ihr mit "wie die datei gespeeichert ist"?
ich kann nirgends beim speichern sagen in welcher codierung er es speichern soll.
Verwendest du Notepad++ als Editor?
Hier ein Screenshot, der zeigt, wo du die Zeichenkodierung siehst und ändern kannst: http://www.gimp-werkstatt.de/galerie/eibauoma/upload/Hilfe/zeichenkodierung.jpg
(Der Screenshot ist nicht von mir, da ich unter Ubuntu kein Notepad++, sondern Geany verwende ...) -
nein, verwende nicht notepad++
sondern expression web4 oder der normale editor (start -> ausführen EDITOR)
bei epxression web4 ist standardseitencodierung auf utf8 eingestellt -
Vermutlich hast du nur die HTML-Text-Datei nicht im richtigen Zeichensatz abgespeichert.
Ausserdem findest du hier noch Infos
http://www.w3.org/International/questions/qa-html-encoding-declarations
http://www.w3.org/International/questions/qa-byte-order-mark
Hier noch ein Beispiel-HTML-Text-Dokument:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Test-UTF8</title> </head> <body> <h1>Test-UTF8</h1> <h2>Umlaute: ÄÖÜ äöü</h2> <h2>daß Scharfe-S</h2> <h2>Euro-Zeichen: €</h2> <h2 style="white-space: pre-wrap"> العربية অসমীয়া Беларуская Беларуская (тарашкевіца) Български বাংলা Català کوردیی ناوەندی Čeština Чӑвашла Ελληνικά Español فارسی Français ગુજરાતી עברית हिन्दी Հայերեն 日本語 Basa Jawa ქართული Қазақша ಕನ್ನಡ 한국어 कॉशुर / کٲشُر Kurdî Кыргызча Lietuvių Latviešu Олык марий മലയാളം Монгол मराठी नेपाली नेपाल भाषा Nederlands Norsk bokmål ਪੰਜਾਬੀ Română Русский संस्कृतम् Саха тыла Srpskohrvatski / српскохрватски Slovenčina Slovenščina Српски / srpski தமிழ் తెలుగు Тоҷикӣ ไทย Türkçe Українська اردو Tiếng Việt ייִדיש Yorùbá 中文 粵語</h2> </body> </html>
-
doch habe ich eigentlich, die datei siet im codeteil so aus
<html> <head> <meta charset="utf-8" /> <link rel=stylesheet type="text/css" href="eigenschaften/farbe.css"> <link rel=stylesheet type="text/css" href="eigenschaften/groesse.css"> <link rel=stylesheet type="text/css" href="eigenschaften/rahmen.css"> <link rel=stylesheet type="text/css" href="eigenschaften/schrift.css"> </head> <body> <?php ini_set("display_errors",true); error_reporting(E_ALL); $_DSN = "dbname"; $_User = "dbuser"; $_PW = "dbpass"; $conn = odbc_connect($_DSN, $_User, $_PW) or die("Verbindung fehlgeschlagen"); ?> <table border="0" id="table2" width="100%"> <tr> <td width="10%"><b>Was</b><br><br></td> <td width="50%"><b>Beschreibung</b><br><br></td> <td width="40%"><b>Fotos<br><br></b></td> </tr> <?php $SQL3 = "SELECT * FROM wangebot where(ecode >0)"; $SQL3R = odbc_exec($conn, $SQL3); while($SQL3Z= odbc_fetch_array($SQL3R)) { echo '<tr> <td>' . $SQL3Z["einsatz"] . '</td> <td>' . $SQL3Z["einsatztext"] . '</td> <td><a href="http://www.domain.de/gallery/view_album.php?set_albumName=' . $SQL3Z["einsatz"] . '">Gallery</a></td></tr>'; } ?> </table> </body> </html>
-
Nur um Missverständnisse zu vermeiden,
hier nochmal,
die Datei (egal ob .html oder .php)
muss mit dem richtigen Zeichensatz befüllt worden sein sowie beim Abspeichern
als Textdatei mit dem richtigen Zeichensatz abgespeicher worden sein.
Darüber hinaus ist im HTML-HEAD das richtige META-Tag zu setzen.
<meta charset="utf-8" />
-----
Weiterhin ist auch noch wichtig das dein Web-Server die Datei an den Browser(Web-Client)
mit dem richtigen Response-Header versendet (Ich glaube das läuft bei dir falsch).
Wäre es eine PHP-Datei(PHP-Skript), könnte man diese u.a. auch direkt mit der php-header-function bestücken:
<?php header('Content-Type: charset=utf-8');
.......
?>
Wäre es erforderlich für zumindest alle Standard-Webdateien
dann könnte man das besser zentral lösen via z.B. der Datei .htacess eines z.B. ApacheWebservers:
AddType text/css;charset=UTF-8 .js
AddType text/css;charset=UTF-8 .css
AddType text/html;charset=UTF-8 .html
AddType application/xhtml+xml;charset=UTF-8 .xhtml
Oder auch in der .htacess Datei für alle Dateien den Default-Charset auf UTF-8 setzen:
AddDefaultCharset UTF-8 -
auch im quellcode im browser wird es so mit ??? angezeigt anstelle des ö,ä
wo leere ich den cache im iron-browser -
internetplattform schrieb:
auch im quellcode im browser wird es so mit ??? angezeigt anstelle des ö,ä
wo leere ich den cache im iron-browser
Es reicht eigentlich bei den meisten Browsern strg+f5 damit die Seite frisch aufgerufen wird.
Mir ging es nicht so sehr darum, wie diese Zeichen im Quellcode aussehen, sondern ob deine utf-8-Änderung angekommen ist.
Beitrag zuletzt geändert: 28.12.2015 20:46:30 von mein-wunschname -
auch "strg+f5" hat nichts gebracht.
wie kann ich es direkt am webserver einstellen, dass die daten immer in utf8 an den browser senden soll?
es ist ein windows server 2012 mit iis 7 -
Das Problem ist nicht der Webserver oder das PHP-Script, es ist Deine Datenbank, wenn ich Dein Script richtig verstehe und Du in PHP per ODBC-Abfrage Daten in dein HTML einfügst. Auch die Datenbank benutzt irgendeine Codierung für Texte, und wenn das nicht die Richtige ist und auch nicht per Script zur Richtigen konvertiert wird, kriegst Du halt Müll.
H. -
aber in der datenbank selbst, sehen die werte korrekt aus.
oder muss man was bei der odbc schnittstelle zur db beachten -
internetplattform schrieb:
aber in der datenbank selbst, sehen die werte korrekt aus.
oder muss man was bei der odbc schnittstelle zur db beachten
Da ich noch nicht mal weiss, welche Datenbank Du da verwendest - das ist ja auch der Sinn von Abstraktionsschichten wie ODBC, JDBC oder PDO - kann ich nur Vermutungen anstellen. Dass es in der Datenbank - ich nehme mal an, Du meinst in irgendeinem Frontend, sei es nun Access, OpenOfficeBase, phpMyAdmin oder was auch immer - richtig aussieht, ist nicht verwunderlich. Dein Frontend kennt die verwendete Codierung.
Wenn ich z.B. bei PHP mit MySQL arbeite, kann ich so etwas wie "$verbindung->query('set character set utf8');" raus schicken und von da an "spricht" die Datenbank utf8. Bei ODBC kenne ich mich als langjähriger Linux-Benutzer nicht so wirklich aus, kann sein, dass Du bei der Definition des DSN eine Codierung angeben kannst oder dass Du eine ähnliche Query wie in meinem Beispiel an Deine Datenbank schicken musst.
H. -
Alternativ läßt sich anstatt der Sonderzeichen auch der html Code der Zeichen schreiben. Dann sehen die Zeichen in allen Zeichensätzen gleich aus. Einfach die Buchstaben gegen den html code austauschen. Das sieht zwar im html Document komisch aus, aber im Browser wird es richtig ausgegeben.
-
8:14, 29.12.2015
----------------------
es ist eine ms access datenbank welche hinter odbc steckt.
8:24, 29.12.2015
----------------------
ich konnte das problem lösen.
es lag in der php.ini datei.
ich habe vor am samstag php aktualisier von php 5.4 auf php 5.6. da hat sich im php.ini diesen fehler eingeschlichen.
vorher: default_charset = "UTF-8" = so wurden ö,ä,ü komisch dargestellt
jetzt: default_charset = "ISO-8859-1" = jetzt werden ö,ä,ü richtig dargestellt.
also problem gelöst
Beitrag zuletzt geändert: 29.12.2015 9:27:33 von internetplattform -
Das Problem dabei ist, das HTML nicht im deutschsprachigen Raum entwickelt wurde, d.h. es ist für die englische Sprache ausgelegt, die ja allgemein bekannt keine Umlaute erhält.
Um dieses Problem zu umgehen, muss man einfach nur
u durch ü
a durch ä und
o durch ö
ersetzen.
Hoffe ich konnte helfen
MfG
allyousave -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage