ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
3325
3325
EMPFEHLEN
-
31.08.06 00:12 #1
- Registriert seit
- Aug 2006
- Beiträge
- 10
Hallo,
das ganze wirkt auf mich etwas komplex, daher wird es mir wahrscheinlich selbst schwerfallen das ganze "richtig" zu erklären. Ich hoffe es gelingt mir
.
~~~~~~~
Problem anzeigen Polnischer zeichen in einer Suchausgabe/Suche:
/**Datenbank:
Also
: Ich habe eine Datenbank (MySQL) deren Zeichensatz utf8_unicode_ci
ist. Auch die einzelnen Tabellen und die Tabellenfelder haben diesen Zeichensatz.
Je nach Inhalt (wird von 2 Personen gepflegt), gibt es eine Tabelle mit deutsch einträgen und eine mit polnischen. Die Daten selbst werden über phpMyAdmin eingepflegt.
Sowohl in phpMyAdmin werden daraufhin auch die deutschen und pol. sonderzeichen Angezeigt.
/**Ausgabe PHP/HTML:
Gebe ich nun diese Parameter mittels PHP auf meine Website aus, muss ich mir mittels der Funktion: utf8_encode(), behelfen. Natürlich klappt das nur für die deutschen Sonderzeichen
da iso....-1 .
Eigentlich sollte die Seite aber alle Sonderzeichen richtig anzeigen, da die Formatierung der Seite UTF-8 ist.
Code :1
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
/**Senden aus Formularen (zur Suche)
Das ganze wird noch irrwitzger, wenn ich die Daten aus einem Eingabefeld an eine Suchseite sende, dann muss ich die Übergebenen Parameter (aus dem inputfeld) wiederrum decodieren (zur Suche) und zur Ausgabe wieder encoderien.. und das nur für die Deutschen Umlaute.
Sende ich Umlaute auf polnischen, kommieren die richtig an können jedoch in der Suche nicht gefunden werden, obwohl Copy und Paste der where clause in phpmyadmin zum erfolg führen.
Also wie gesagt mir fällt es selbst schwer alle Ungereimtheiten wiederzugeben. Ich hoffe jemand, kann das nachvollziehen, oder sich darunter etwas vorstellen. Wenn jemand ernsthaft interesse zeigt, kann man mich auch gerne per PM kontaktieren. (Zumindest bis zum 1.9, dann bin ich 2 Wochen ohne PC).
MFG und LG für jeden, der sich das geschriebe angetan hat und alle anderen auch
Christian
-
Die Angabe der verwendeten Zeichenkodierung im Nachrichtenkörper selbst – in diesem Fall dem HTML-Quellcode – ist eindeutig zu spät. Denn bereits vorher muss der User Agent wissen, womit er es zu tun hat. Daher gib diese Informationen mal zusätzlich im Header der HTTP-Antwort an:
PHP-Code:header('Content-Type: text/html; charset=UTF-8');
Markus Wulftange
-
31.08.06 01:10 #3
- Registriert seit
- Aug 2006
- Beiträge
- 10
Hallo,
gerade eben auch schon probiert und geht nicht.
Dies steht in der index.php die weiteren beiden betroffenen Dateien werden dorthin includiert.PHP-Code:<?
header("Content-type: text/html; charset=UTF-8");
/* build standard variables for system */
session_start();
Das "Lustige" ist folgendes suche ich im "phpMyAdmin" mit folgendem query:
Bekomme ich einen Treffer. Und wenn meine "class.database.php" selbigen qry absetzt, bekomm ich 0 treffer. Wobei der Wert, der im Suchfeld wieder ausgeben ist, richtig formatiert ist. Gleiches Problem auch bei "Müller" als Suchwert.PHP-Code:SELECT * FROM eintraege_pl WHERE (NAME LIKE '%Paweł%'OR VORNAME LIKE %Paweł%')
Es liegt anscheinend an der Datei/Code der includierten .php Datei oder an der Kommunikation, der selbigen, wobei das an sich nicht sein kann.
Denn Werte abspeichern etc. mittels Umlauten und Sonderzeichen anderer Art geht.
// edit
Nachtrag, wenn ich in einem Formular Daten in UTF-8 Speicher,
kommen Sie im phpMyAdmin so "raus":
üüüüPaweł
mache ich das verfahrung umgekeht, stehen im den Textinput-Felder bei der Ausgabe Fragezeichen:
����
Schalte ich dann das Character Encoding in meinen Firefox auf Western um, stehen da schöne "ü's".
Kann das sein, das meine Kommunikation Apache(php_module) <> MySQL auf Western ist?
-
Wenn du mit UTF-8 arbeiten möchtest, solltest du am besten alles auf UTF-8 umstellen. Das heißt auch die PHP-Skriptdateien und mögliche HTML-Dateien sollten in UTF-8 gespeichert sein, damit es keine Konflikte gibt. Dann ist auch die utf8_encode()-Funktion nicht mehr notwendig. In Formularen sollte zusätzlich das Attribut „accept-charset="utf-8"“ gesetzt sein, obwohl laut Spezifikation bei einem UTF-8-kodierten Formular auch UTF-8 als Kodierung der abzuschickenden Werte verwendet werden soll. Doch sicher ist sicher.
Markus Wulftange
-
01.09.06 09:32 #5
- Registriert seit
- Sep 2006
- Ort
- Görlitz
- Beiträge
- 2
Hallo zusammen!
Suche ebenfalls nach einer Lösung des Problems.
Die MySQL-Datenbankfelder und die Forumulareingabefelder sind bereits UTF-8 codiert. Es sind also in der Datenbank alle polnischen und deutschen Sonderzeichen/Umlaute sichtbar.
Die Anzeige im Frontend sieht dann trotzdem so aus...
Code :1
Znajd? tu Pa?stwo wiele obiekt�w G�rlitz i Zgorzelca...
Geändert von Gunnarsson (01.09.06 um 09:44 Uhr)
-
Hi, versuch mal als erstes nach dem Verbinden zur Datenbank folgende Query zu senden:
Code :1
SET NAMES 'utf8'
Ich weiss nicht ob das hilft, aber einen Versuch ist es sicher wert."Die Deutsche Rechtschreibung ist Freeware, dass heisst jeder kann sie benutzen wann er will, ohne dafür zu zahlen. Sie ist aber nicht Open Source, also darf sie ohne Zustimmung der Entwickler nicht verändert und weiterverbreitet werden."
-
01.09.06 13:06 #7
- Registriert seit
- Sep 2006
- Ort
- Görlitz
- Beiträge
- 2
Hallo an alle, hallo EvilO!
Das funktioniert!
Habe direkt nach dem db-connect folgende Zeilen eingebunden...
Code :1 2
mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'");
Danach musste ich wieder alle ...... Anweisungen entfernen und deutsche Umlaute im PHP-Ausgabetemplate utf-8 codieren, also z.B. bereitete das "ß" Probleme...PHP-Code:utf8_encode
Auf folgender Übersichtsseite ist eine ganz gute Übersicht zu finden.Code :1
ß > ß
Danke nochmals und schönes Wochenende!
Geändert von Gunnarsson (01.09.06 um 13:09 Uhr)
-
05.10.06 18:18 #8
- Registriert seit
- Aug 2006
- Beiträge
- 10
Hallo,
danke für das tolle Engagement!
Mein Problem wurde mit:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
Obwohl ich ALLE (so glaube ich) Apache,Mysql,Linux - Variablen auf UTF-8 gesetzt hatte, unterhielten sich wohl mein PHP Script und die Mysql-DB auf Latin
.
Durch das setzten der 2 Variablen zur Laufzeit des Scripts funktioniert nun alles wunderbar ohne legliches decodieren oder encodieren! TOP.
grüße
christian
Ähnliche Themen
-
Python, CGI, MySQLdb und nen Unicode-Problem
Von thakki im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 0Letzter Beitrag: 24.07.08, 19:29 -
Multibyte zu Unicode Problem
Von Sparks im Forum .NET Application und Service DesignAntworten: 8Letzter Beitrag: 01.01.08, 21:39 -
Unicode
Von liquidbeats im Forum PHPAntworten: 4Letzter Beitrag: 30.04.07, 00:52 -
Unicode?
Von Caruso_Nix im Forum JavaAntworten: 5Letzter Beitrag: 11.03.05, 09:25 -
Unicode oder Unicode nicht
Von Trivalik im Forum .NET ArchivAntworten: 1Letzter Beitrag: 09.12.04, 15:02





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren