Zend_Validate_StringLength codifica?
-
25-10-2019 - |
Domanda
In Zend Framework, Zend_Validate_StringLength
ha una proprietà di codifica che può essere utilizzato per la conversione tra differenti insiemi di caratteri (usa iconv_set_encoding
sulla corda).
Perché questo è parte della classe StringLength
validatore? Dovrei usare questo con la mia stringa di verifiche sul campo lunghezza di far rispettare UTF-8?
Soluzione
La lunghezza delle stringhe in PHP sono il numero di byte adottate per salvare la stringa. Alcune codifiche utilizzano più byte (ad esempio due) per memorizzare singolo carattere.
Pertanto, se si utilizza la codifica memorizzare alcuni dei caratteri a più byte (ad esempio Unicode UTF-8), è necessario utilizzare questa codifica per determinare correttamente lunghezza della stringa. Se si utilizzano le impostazioni di codifica di default, è possibile ottenere risultati non accurati.
Tuttavia, credo che il valore di default per tutti i componenti di Zend è UTF-8, che è lo standard de facto nelle applicazioni web. Peccato, questo non è quello di default per PHP (ancora).
Altri suggerimenti
In realtà utilizza iconv_set_encoding
solo per test se supportati dal server attuali specificati $encoding
. Il confronto effettivo è fatto con iconv_strlen()
.
Non sono sicuro che posso ottenere la tua seconda domanda. Se avete bisogno di lunghezza convalidare stringhe - è necessario utilizzare questo strumento di convalida
.