AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Websiteumstellung auf UTF-8, wie geht's?
Thema durchsuchen
Ansicht
Themen-Optionen

Websiteumstellung auf UTF-8, wie geht's?

Ein Thema von Matze · begonnen am 31. Jan 2008 · letzter Beitrag vom 15. Feb 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Websiteumstellung auf UTF-8, wie geht's?

  Alt 31. Jan 2008, 09:35
Hallo,

es ist wirklich grauenhaft, was alles zu tun ist, um eine Website auf UTF-8 umzustellen. Was man da alles verändern muss.
Ich bekomme es jedenfalls nicht korrekt hin, denn entweder wirde es nicht alles in die Datenbank eingetragen oder es wird im Browser falsch codiert dargestellt.

Die MySQL-Datenbank ist so eingestellt (diese 2 Beispiele verdeutlichen das ganz gut):

SQL-Code:
# Datenbank
CREATE DATABASE `main`
    CHARACTER SET 'utf8'
    COLLATE 'utf8_unicode_ci';

# Eine der Tabellen
CREATE TABLE `page_acronyms` (
  `acronym_name` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  `acronym_desc` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  `lang` varchar(4) collate utf8_unicode_ci NOT NULL default '',
  PRIMARY KEY (`acronym_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Wenn ich nun ganz gewöhnlich über die PHP-Funktionen etwas in die Datenbank einfügen (INSERT INTO ...) und auch normal wieder auslesen möchte (SELECT ... FROM ...), dann sehe ich im Browser nur diese seltsamen Zeichen, trotz UTF-8-Header, den ich mittels header() sende und in den Meta-Tags zusätzlich angegeben habe (der Internet Explorer braucht das zwingend dort).

Mir wurde dann der Tipp gegeben, zu Beginn das hier aufzurufen, was jedoch auch nicht weiterhilft, denn das schneidet mir die String ab einem Sonderzeichen einfach ab:

SET NAMES 'utf8' Es kann ja nicht sein, dass ich beim Eintragen und Auslesen immer utf8_encode() bzw. utf8_decode() verwenden muss.

Wo liegt der Fehler?

Grüße
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Websiteumstellung auf UTF-8, wie geht's?

  Alt 31. Jan 2008, 09:39
Hallo,
Zitat von Matze:
Es kann ja nicht sein, dass ich beim Eintragen und Auslesen immer utf8_encode() bzw. utf8_decode() verwenden muss.
eine andere Lösung habe ich zumindest bisher nicht gefunden.

Zitat von Matze:
Wo liegt der Fehler?
Das würde mich auch interessieren.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Websiteumstellung auf UTF-8, wie geht's?

  Alt 31. Jan 2008, 10:01
Zitat von Matze:
Wo liegt der Fehler?
Das schönste UTF-8 bringt dir nichts, wenn du die Daten nicht auch in dieser Kodierung verschickst!

Mit welchem Zeichensatz sind deine Dateien kodiert?

LG,
Xong
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Websiteumstellung auf UTF-8, wie geht's?

  Alt 31. Jan 2008, 10:10
Hallo Xong,

ich war der Meinung, wenn der Browser UTF-8 vorgegeben bekommt, übergibt er die Daten auch in dem Format weiter (beispielsweise bei Formularen).

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Websiteumstellung auf UTF-8, wie geht's?

  Alt 31. Jan 2008, 10:23
Formulareingaben musst du sowieso immer überprüfen.
Du weißt nie, in welchem Encoding die Daten ankommen. Dort ist ein utf8_encode also unerlässlich.

Trotzdem würde ich gerne noch wissen, mit welchem Editor / welcher IDE du deine PHP-Dateien speicherst und welche Zeichenkodierung diese haben. =)

LG,
Xong
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Websiteumstellung auf UTF-8, wie geht's?

  Alt 31. Jan 2008, 10:28
Hallo Xong,

ach das hast du gemeint! Ich nutze PHPEclipse und das speichert die Dateien meines Wissens im ANSI-Format ab.
Ich muss das alles also doch immer manuell kodieren, ohje.

Grüße

Edit: Da ich die ganzen Strings in den Abfragen über eine eigene Funktion behandle, wäre der Aufruf von utf8_encode doch mit minimalem Aufwand verbunden, sehe ich gerade. Daran hatte ich gar nicht gedacht.
Nur utf8_decode wäre mit größerem Aufwand verbunden.

Dennoch würde mich interessieren, ob das wirklich zwingend erforderlich ist.
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Websiteumstellung auf UTF-8, wie geht's?

  Alt 31. Jan 2008, 11:03
Zitat von Matze:
Ich nutze PHPEclipse [...]
Man kann dort auch als UTF-8 speichern. Das würde ich dir dringend empfehlen!
Ich habe das Programm hier nicht installiert, aber wenn ich zu Hause bin, kann ich dir weiterhelfen, wenn du es bis dahin nicht schon selbst gefunden hast!

Zitat von Matze:
Dennoch würde mich interessieren, ob das wirklich zwingend erforderlich ist.
Du kannst nie wissen, welche Daten an deinen Server gesendet werden. Und so kannst du auch nicht verhindern, dass eine "falsche" Kodierung benutzt wird.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Websiteumstellung auf UTF-8, wie geht's?

  Alt 31. Jan 2008, 11:12
Ich kann die Dateien natürlich als UTF-8 speichern, sehe jedoch keinen Grund dafür, da ich nicht über den ANSI-Zeichensatz hinausgehe.
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Websiteumstellung auf UTF-8, wie geht's?

  Alt 31. Jan 2008, 11:20
Hi Matze,
wenn du UTF-8 verwenden willst, musst du auch konsequent dieses Dateifomat verwenden. Die Angabe im Header alleine bedeutet ja noch nicht, dass die Datei wirklich dieses Format hat. Du versendest also im Moment einen Mix aus ANSI und UTF-8. Das muss zwangsläufig zu Fehlern führen.

Beispiel: Wenn du alles auf Unicode eingestellt hast, und in deiner (ANSI-)PHP-Datei dann schreibst
Code:
mysql_query("SELECT * FROM table WHERE intID = 2");
Dann sendest du ja automatisch einen ANSI-String an MySQL. Schließlich steht er in einer ANSI-Datei, ist also als ANSI gespeichert. Das gilt natürlich auch für String-Übergaben an eigene Methoden etc.

Also: Konsequent ein Dateiformat benutzen.

Christopher
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Websiteumstellung auf UTF-8, wie geht's?

  Alt 31. Jan 2008, 11:22
Zitat von Matze:
Ich kann die Dateien natürlich als UTF-8 speichern, sehe jedoch keinen Grund dafür, da ich nicht über den ANSI-Zeichensatz hinausgehe.
Hab ich dich. =)
Der ANSI-Zeichensatz ist in UTF-8 enthalten!
Du speicherst also schon in UTF-8...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz