在 Zend Framework 中,Zend_Validate_StringLength
有一个 encoding 属性,可用于在不同字符集之间进行转换(它用于iconv_set_encoding
字符串)。
为什么这部分是StringLength
验证器类?我应该将它与我的字符串长度字段检查一起使用以强制执行 UTF-8 吗?
在 Zend Framework 中,Zend_Validate_StringLength
有一个 encoding 属性,可用于在不同字符集之间进行转换(它用于iconv_set_encoding
字符串)。
为什么这部分是StringLength
验证器类?我应该将它与我的字符串长度字段检查一起使用以强制执行 UTF-8 吗?
PHP 中的字符串长度是保存字符串所需的字节数。一些编码使用多个字节(例如两个)来存储单个字符。
因此,如果您使用编码将某些字符存储在多个字节中(例如 Unicode UTF-8),则需要使用此编码来正确确定字符串长度。如果您使用默认编码设置,您可能会得到不准确的结果。
但是,我相信所有 Zend 组件的默认值都是 UTF-8,这是 Web 应用程序中的事实标准。可惜,这还不是 PHP 的默认设置。
实际上它iconv_set_encoding
仅用于测试当前服务器是否支持指定$encoding
的 . 实际比较是用iconv_strlen()
.
不确定我能得到你的第二个问题。如果您需要验证字符串长度 - 您需要使用此验证器。