Einzelnen Beitrag anzeigen

Synollus

Registriert seit: 29. Dez 2008
49 Beiträge
 
#9

Re: Umgang mit Sonderzeichen bei PHP und SQL

  Alt 1. Mär 2009, 15:49
Zitat von alcaeus:
Moin,

mit UTF-8 oder UTF-16 faehrst du heutzutage am geschicktesten. Beachte aber, dass PHP keine Multibyte-Strings kennt, das funktioniert erst in PHP 5.3 oder sogar erst PHP 6. Das hat zur Folge dass z.B. strlen() bei Multibyte-Strings falsche Ergebnisse liefert. Es gibt allerdings die mb_string-Extension, die mit Multibyte-Strings umgehn kann.

Was das andere charset betrifft: iso-8859-1 ist auch als latin1 bekannt, du koenntest also latin1_binary verwenden. Beachte bei der Collation also auch, dass saemtliche Charsets mit einem _ci am Ende case-insensitive sind, da ist Matze letztens schon drueber gestolpert

Ansonsten kann ich Bernhard nur zustimmen - HTML hat erst ausserhalb der DB was zu suchen. In der DB solltest du allerhoechstens eingegebenen HTML-Code mit htmlspecialchars() entschaerfen, damit du das nicht bei jedem Anzeigen machen musst.

Greetz
alcaeus
Ich danke euch erstmal. Klappt alles prima mit UTF-8. Ich speicher in der DB ja nur kleine Formatierungen wie [b], <u>, [i],
, etc. zum Formatieren von News, etc.

Der Header der HTML-Seite sieht momentan so aus:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 [...]
</head>
Wenn ich jetzt auf der Seite direkt "Ä" (also ohne &Auml; im Body-Bereich) eingebe, kommt bei Schwarzer Schrift auf weißem Hintergrund im FF eine schwarze Raute mit weißem Fragezeichen und im IE ein weißes Rechteck mit schwarzem Rahmen raus. Liegt das jetzt daran, dass die Datei auf meinem lokalen Rechner (XAMPP) ASCII-codiert ist?
  Mit Zitat antworten Zitat