dedlfix: größe eines string in byte

Beitrag lesen

echo $begrüßung;

sind alle zeichen, die ein user bei einer iso seite in ein eingabefeld dann 1byte?

Das kommt, wie schon erwähnt, auf die verwendete Zeichenkodierung an. Bei ISO-8859-x wird jedes Zeichen mit einem Byte kodiert. Damit lassen sich dann auch nur jeweils 255 Zeichen repräsentieren.

wenn ich nämlcih das eingabefeld auf 100 begrenze begrezne ich ja die zeichenanzahl, muss aber in meiner mysl_tabelle möglihcerweise mehr angeben oder?

Das kommt, wie Sven schon erwähnte, auf die MySQL-Version an und auch auf die verwendete Zeichenkodierung.

Es kann auch noch passieren, dass du a) zwar die Länge des Input-Feldes auf 1 Zeichen begrenzt, du b) jedoch eine ISO-8859-Zeichenkodierung verwendest, und c) der Nutzer ein Zeichen eingibt, das damit nicht darstellbar ist, z.B. ǒ (ein o mit Caron). Der Browser schickt dir daraufhin eine Ersatzdarstellung in der Form ǒ. Das sind trotz maxlength=1 schlappe 6 Zeichen. Was nun?

Verwende lieber eine Zeichenkodierung mit der praktisch alle Zeichen repräsentierbar sind, beispielsweise UTF-8. Verwende einen Editor, der damit umgehen kann. Verwende eine Datenhaltung, die mit solchen Multibyte-Kodierungen umgehen kann. Verwende Daten verarbeitende Systeme, die entweder die Daten nur durchreichen oder die mit Multibyte-Kodierungen umgehen können. Und da fangen dann auch die Probleme an. Nicht alle Ausgaben von MySQL können mit Multibyte-Kodierungen umgehen (sprich: Versionen kleiner als 4.1). Datenbank und Clients müssen sich über die verwendete Kodierung abstimmen. PHP kann noch nicht vollständig mit UTF-8 umgehen oder entsprechende Erweiterungen sind beim Provider nicht installiert. Und so weiter und so fort. Nichtsdestotrotz ist UTF-8 derzeit die sinnvollste Möglichkeit, Probleme mit der Repräsentierung von Zeichen zu lösen.

echo "$verabschiedung $name";