Einzelnen Beitrag anzeigen
  #7  
Alt 11.01.2013, 18:23:16
nordy46 nordy46 ist offline
Anfänger
 
Registriert seit: May 2012
Alter: 64
Beiträge: 6
AW: umlaute bei dgssearch

[QUOTE=meikel;144229]Für die Suche nach Texten mit UTF-8 Zeichensatz benötigst Du utf8_general_ci für die Tabelle und die varchar bzw. text Spalten. Allerdings hast Du ein Problem, wenn die Tabelle schon existiert, weil MySQL beim Ändern der Collation die Inhalte nicht konvertiert. Falls die Inhalte schon (was ich nicht ausschließe) falsch in der Tabelle vorliegen - also mit nem ? anstelle des Umlautes oder sonstigen ASCII "Sonderzeichen", mußt Du den Kram mehr oder weniger mühsam korrigieren.


Hallo,
ich habe mal eine neue (identische) Tabelle angelegt.
Außer die Kollation mit utf8_general_ci eingerichtet
und die Spalten Varchar.
Dann habe ich den Inhalt - hier orte-deutschland.csv mit notepad
(Ich weiß nicht wie ich bei Phase 5 die codierung einstelle)
abgespeichert (codierung utf8) hochgeladen und...
München -> NULL
Berlin -> Ergebnisse

Also
Datenbank: utf8
Tabelle: utf8_general_ci
orte-finden.php: <meta http-equiv="content-type" content="text/html;" charset="UTF-8">
orte-finden.php: mit notepad: codierung utf8 gespeichert und hochgeladen
orte-deutschland.csv mit notepad: codierung utf8 gespeichert und in Tabelle hochgeladen

Das alles hat mit dgssearch nichts zu tun, sondern ist ein script, dass ich selbst geschrieben habe.
dgssearch ist eine Volltextsuche und habe ich praktisch nebenher.
Aber auch dort ist das gleiche Problem.

Weder bei meinem Script noch bei dgssearch kommt ein Ergebnis bei Umlauten.

Mein Script ganz normal:
include("dbconnect.php");

$abfrage = "SELECT *
FROM `orte-deutschland-02`
WHERE ort LIKE '$ort' ORDER BY 'id' ";
$ergebnis = mysql_query($abfrage);
$treffer=0;

while ($row = mysql_fetch_array($ergebnis))
{
$treffer=1;
... u.s.w.


Beide Scripte liefen bis vor kurzem einwandfrei (seit mehreren Jahren).
Auf Anfrage bei meinem Anbieter kam folgendes:

"an der Konfiguration des Webservers und der Datenbank hat sich auf dem
Server ****** nichts geändert. Wahrscheinlich sind bei Ihnen
einige Datensätze in der Datenbank im "UTF-8" Zeichensatz gespeichert
während ihre Website in "ISO 8859-1" als Zeichenkodierung verwendet.
Dadurch können bei der Ausgabe von Umlauten und anderen Sonderzeichen
diese Zeichen entstehen. "

Weiß nicht weiter
Mit Zitat antworten