php.de

Zurück   php.de > Webentwicklung > HTML, Usability und Barrierefreiheit

HTML, Usability und Barrierefreiheit Themen rund um Textauszeichnung, Formatierung, Barrierefreiheit und Usability.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.07.2009, 12:13  
Neuer Benutzer
 
Registriert seit: 06.05.2008
Beiträge: 29
japsa befindet sich auf einem aufstrebenden Ast
Standard UTF8 - Umlautproblem mit Verlinkungen ?

Hallo;
ich habe ein ernsthaftes Problem:

Ich habe meine DB & die Ausgabe jetzt bei einer neuen Domain auf UTF8 angeglichen (war vorher nicht) - allerdings bekomme ich in den Linkausgaben, wo Umlaute vorkommen jetzt das hier:

zB: domain.tld/europa/d%C3%A4nemark
was nicht wirklich gut ist - da auch nix aus der DB dadurch gefunden wird, obwohl ja ein Eintrag vorhanden ist.

In meiner DB sieht es jetzt so aus:
Eingetragen wurde zb. Thüringen = in der DB: Schönbrunn
Eingetragen wurde Dänemark = in der DB: Dänemark

Was ja bei UTF8 auch richtig ist :)
Nur, wei bringe ich den Link wieder bei, dass er domain.tld/europa/dänemark ausgeben soll?

Bei der Webseitenausgabe, E-Mails und in PDF's konnte cih das Umlautproblem wurderbar lösen - nur bei den Links verzweifle ich etwas ?

Danke & Gruß Dirk
japsa ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.07.2009, 13:59  
Erfahrener Benutzer
 
Registriert seit: 29.08.2008
Beiträge: 777
halskrause wird schon bald berühmt werden
Standard

Du kannst das Problem mehrfach lösen...
Aber meiner Meinung nach ist die beste Lösung folgende.

Exportiere die Tabelle. Öffne siese in Notepad (oder sonstiges). Ersetze die Umlaute mit der "Suchen/ErsetzenFunktion", und importiere diese wieder in MySQL.
Dann sparst du die lästige utf8_decode/encode beim sauberen ablesen.

Wenn ihr einen besseren Weg kennt... Nur her damit. Ich kanns auch brauchen.
halskrause ist offline   Mit Zitat antworten
Alt 20.07.2009, 14:02  
Erfahrener Benutzer
 
Registriert seit: 29.08.2008
Beiträge: 777
halskrause wird schon bald berühmt werden
Standard

Falls du es doch auf die schnelle brauchst:
Hier eine Lösung

PHP-Code:
$test "Dänemark" ;
echo 
utf8_decode($test); 
// Ergibt Dänemarg
halskrause ist offline   Mit Zitat antworten
Alt 20.07.2009, 14:05  
Neuer Benutzer
 
Registriert seit: 06.05.2008
Beiträge: 29
japsa befindet sich auf einem aufstrebenden Ast
Standard

Ich kann die Umlaute nicht in der Db ersetzen - ich habe ca. 10.000 Einträge und es kommen immer laufend neue Wörter mit Umlauten hinzu - da alles auf UtF8 ausgelegt ist und es kommen ja laufend solche Einträge wie: Dänemark hinzu, wo dann bei einem Link dann das wird: D%C3%A4nemark

Gruß Dirk
japsa ist offline   Mit Zitat antworten
Alt 20.07.2009, 14:12  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Eingetragen wurde zb. Thüringen = in der DB: Schönbrunn
Das ist in der Tat kritisch

1. Bitte prüfe noch einmal alle Collations der DB (Datenbank, Tabellen, Felder) ob die alle UTF-8 sind. Einfach nur die DB Collation ändern bringt keine Punkte, wenn nicht auch die Tabellen neu angelegt werden.
2. Prüfe die DB Verbindungskollation (SET CHARACTER SET utf8)
3. Prüfe die Header der Darstellung
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 20.07.2009, 14:14  
Erfahrener Benutzer
 
Registriert seit: 29.08.2008
Beiträge: 777
halskrause wird schon bald berühmt werden
Standard

Musst mal über nacht machen! Die Prozedur würde max. 10min dauern...
- exportieren
- in notepad öffnen
- "ä" suchen durch "ä" ersetzen. //musst ja nicht einzeln machen
- In MySQL importieren

Du müsstest aber danach wahrscheinlich auch deine Formularseite ändern, damit die Werte (auch Umlaute) sauber in die DB kommen. Das klappt meistens mit utf8_encode.
halskrause ist offline   Mit Zitat antworten
Alt 20.07.2009, 14:16  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Das klappt meistens mit utf8_encode.
Davon rate ich ab. Normal klappt alles automatisch, wenn man nur konsequent UTF-8 verwendet.
Zitat:
- "ä" suchen durch "ä" ersetzen. //musst ja nicht einzeln machen
Jetzt nicht Dein Ernst?!

Falls Du eine Migration machst, erzeuge einen sauberen Dump in der Collation wo alles funktioniert und importiere diesen später über ein neues Zeichensetting.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 20.07.2009, 14:21  
Neuer Benutzer
 
Registriert seit: 06.05.2008
Beiträge: 29
japsa befindet sich auf einem aufstrebenden Ast
Standard

Wie ich hier: http://www.php.de/php-einsteiger/572...8-zeichen.html
schon geschrieben habe - ist alles auf UTF8 gestellt:

DB = UTF-8 Unicode ( utf8 )
Zeichensatz / Kollation der MySQL-Verbindung = utf8_generali_ci
Kollation der einzellen Felder = utf8_generali_ci
Headerausgabe: <metahttp-equiv="content-type" content="text/html;charset=utf-8">
.htaccess = AddDefaultCharset utf-8 / AddCharset utf-8 .php .css
Jedes Formular: <form accept-charset="utf-8" metho=.... </form>

Ich wüste jetzt nicht, wo ich noch was auf UTF8 umstellen müsste ?
Gruß Dirk
japsa ist offline   Mit Zitat antworten
Alt 20.07.2009, 14:29  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

ich tippe darauf, dass du nach der Verbindung zur DB das hier vergessen hast:

PHP-Code:
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'"
Wolla ist offline   Mit Zitat antworten
Alt 20.07.2009, 14:30  
Erfahrener Benutzer
 
Registriert seit: 29.08.2008
Beiträge: 777
halskrause wird schon bald berühmt werden
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Falls Du eine Migration machst, erzeuge einen sauberen Dump in der Collation wo alles funktioniert und importiere diesen später über ein neues Zeichensetting.
Diese Lösung ist bestimmt besser!

Aber ich habe die Notepad Version schon 3mal (für andere) gemacht. Dauert echt nur 5mins... Natürlich sollte man dafür sorgen, dass auch Folgeeinträge sauber in die DB kommen.
halskrause ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
phpMyAdmin Fehler pfump Datenbanken 8 07.06.2009 11:11
[Erledigt] Excel *.csv Import. Problem mit utf8?? go1denboy Datenbanken 3 27.05.2009 23:36
komische zeichen in phpmyadmin utf8 slave1970 Datenbanken 1 31.01.2009 19:56
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
[Erledigt] Mail() und polnischer Text UTF8 verändert Sonderzeichen Wolla PHP Tipps 2008 3 21.08.2008 00:10
[Erledigt] Utf8 SJahr PHP-Fortgeschrittene 11 21.05.2008 17:40
UTF8 Dump erzeugt nach import in UTF8 kod DB falsche Umlaute Carino Datenbanken 18 07.05.2007 23:49
Verständnisprobleme bei Utf8 > Character Set > Collate erna Datenbanken 4 20.03.2007 14:08
UTF8 php und MySQL test022 PHP Tipps 2007 7 12.02.2007 23:11
utf8 datenverarbeitung mit php/mysql aktionkuba PHP Tipps 2007 3 10.11.2005 15:25
MYSQL - ASCII query in UTF8 Tabelle PHP Tipps 2005-2 1 14.09.2005 14:43
MySQL-Zeichensatz: UTF-8 Unicode (utf8) richtig? Datenbanken 5 30.08.2005 20:20
WHERE CONVERT( `url` USING utf8) ??? Datenbanken 0 03.08.2005 15:01
utf8 encode Text sortieren axelnes PHP-Fortgeschrittene 5 01.08.2005 15:54
[Erledigt] UTF8 und MySQL 4.0 Datenbanken 5 18.04.2005 21:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/html-usability-und-barrierefreiheit/57265-utf8-umlautproblem-mit-verlinkungen.html, umlaute in verlinkungen, utf8 url, php export pdf mysql umlaute, mysql \große umlaute\ csv, \csv php utf8 ausgeben\, utf-8 kollation zeichenkodierung, utf-8 umlaute, utf-8 links umlaute öffnen, set locale centos 6, verlinkung utf8, link utf8, domainnamen utf8, link umlaut öffnen, php utf8 encode umlaute in links, php url nur utf8, sonderzeichen dänemark ersetzen, utf 8 umlaute in verlinkung, polnisches a utf8, umlaut url in pdf

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:45 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum