Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

HTML charset UTF-8 und Umlaute

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
dahead
PostRank 5
PostRank 5
Beiträge: 206
Registriert: 23.04.2009, 08:07

Beitrag von dahead » 18.04.2012, 16:22

Hi,

ich habe folgendes Problem:

Auf meiner Seite verwende ich

Code: Alles auswählen

<meta charset="UTF-8" />
Die Dateien sind ebenfalls in UTF-8 abgespeichert.

Umlaute im normalen HTML Code werden korrekt dargestellt. Umlaute bei Daten, die aus der Datenbank ausgelesen werden, werden als Fragezechen dargestellt.

Datenbank, Tabelle und das Feld haben die Kollation utf8_general_ci.

Wenn ich bei der Datenbankverbindung

Code: Alles auswählen

mysql_set_charset&#40;'utf8'&#41;;
angebe, werden die Umlaute aus der DB auch korrekt angezeigt.

Aber dann habe ich das Problem, dass meine Volltextsuche nicht mehr richtig funktioniert. Z.B. werden dann Wörter mit Umlauten nicht mehr gefunden und Ähnliches.

Wenn ich aber den HTML charset auf iso-8859-1 stelle, erhalte ich ein umgekehrtes Ergebnis: Umlaute im HTML Code werden richtig angezeigt und Umlaute aus der DB werden nicht korrekt dargestellt.

Hat jemand eine Idee?

MfG

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 18.04.2012, 17:08

Diese Funktion hatte ich mal für eine Suche über File-System geschrieben, weil mich utf8_decode() nicht weiter brachte.

Code: Alles auswählen

function UmlautINS&#40;$umlautINS&#41;&#123;

	$sucheuml = array&#40;'Ä','ä','Ö','ö','Ü','ü','ß',"&Auml;","&auml;","&Ouml;","&ouml;","&Uuml;","&uuml;","&szlig;"&#41;;    
	$ersetzel = array&#40;'Ä','ä','Ö','ö','Ü','ü','ß','Ä','ä','Ö','ö','Ü','ü','ß'&#41;;
	$guteuml  = str_replace&#40;$sucheuml,$ersetzel,$umlautINS&#41;;

	return $guteuml;
	&#125;
Falls die Funktion noch nicht alle Zeichen berücksichtigt, so kannst Du die ja ergänzen. Ausgabe ist einfach $var = UmlautINS($var); wie üblich. Kann auch sein, dass da einiges vertauscht werden muss, denn ich durchsuche mit einer ISO-Suche ISO und UTF-8 Dateien. Vielleicht auch so herum:

Code: Alles auswählen

      $erstens  = array&#40;'Ä','ä','Ö','ö','Ü','ü','ß'&#41;;
      $zweitens = array&#40;'Ä','ä','Ö','ö','Ü','ü','ß'&#41;;
      $drittens = str_replace&#40;$erstens,$zweitens,$drittens&#41;;
Und die Funktion auf (Parameter-Wert_von_Suche) anwenden, nicht auf Ausgabe.

Ansonsten, wenn Du ein Formular für die Volltextsuche nimmst, so muss Du das auch als UTF-8 abspeichern, bzw. auch bei einem Formular kannst Du charset angeben:

Code: Alles auswählen

<form name="Suche" action="..." method="get" accept-charset="utf-8">
Du könntest mit mysql_client_encoding() auch mal abfragen, ob die Datenbank wirklich UTF-8 für die Verbindung verwendet:

https://www.php.net/manual/de/function. ... coding.php

gatekeeper
PostRank 1
PostRank 1
Beiträge: 6
Registriert: 02.06.2011, 09:48

Beitrag von gatekeeper » 19.04.2012, 16:33

Die Tabellen und Spalten müssen auch utf8 sein, sowie natürlich der Inhalt

Nokes
PostRank 6
PostRank 6
Beiträge: 425
Registriert: 07.11.2010, 21:10

Beitrag von Nokes » 19.04.2012, 21:29

Ich hatte bei mir auch das Problem, dass Umlaut "komisch" angezeigt werden. UTF-8 hat auch nichts gebracht, doch ein Freund hat mir den Tipp mit ISO gegeben. Also:

Code: Alles auswählen

<meta charset="iso-8859-2" >
Gruß,
<br /><br />Nico
<br /><br />
<br /><br />[url=httpss://chrome.google.com/webstore/detail/robotstxt-viewer/agckgmkiigllflmahknlkhhhhmchodcb]robots.txt viewer[/url] | Nischen Themen finden

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag