Frage

Im Zend Framework, Zend_Validate_StringLength hat eine Codierungseigenschaft, die verwendet werden kann, um zwischen verschiedenen Zeichensätzen umzuwandeln (es wird verwendet iconv_set_encoding auf der Zeichenfolge).

Warum ist dieser Teil der StringLength Validator -Klasse? Sollte ich dies mit meinen Feldprüfungen für die Stringlänge verwenden, um UTF-8 durchzusetzen?

War es hilfreich?

Lösung

Stringlängen in PHP sind die Anzahl der Bytes, die zum Speichern der Zeichenfolge aufgenommen wurden. Einige Codierungen verwenden mehrere Bytes (z. B. zwei), um einzelne Zeichen zu speichern.

Wenn Sie also das Speichern einiger Zeichen in mehreren Bytes verwenden (z. B. Unicode UTF-8), müssen Sie diese Codierung verwenden, um die Stringlänge ordnungsgemäß zu bestimmen. Wenn Sie die Standard -Codierungseinstellungen verwenden, erhalten Sie möglicherweise ungenaue Ergebnisse.

Ich glaube jedoch, dass die Standardeinstellung für alle Zend-Komponenten UTF-8 ist, was der De-facto-Standard in den Webanwendungen ist. Schade, dies ist nicht die Standardeinstellung für PHP (noch).

Andere Tipps

Eigentlich verwendet es iconv_set_encoding Nur um zu testen, ob der aktuelle Server angegeben wird $encoding. Der tatsächliche Vergleich wird mit durchgeführt iconv_strlen().

Ich bin mir nicht sicher, ob ich Ihre zweite Frage bekommen kann. Wenn Sie die Zeichenfolgenlänge validieren müssen, müssen Sie diesen Validator verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top