我正在尝试填充这样的textarea
定义
$this->addElement('textarea', 'body', array(
'label' => $translate->translate('Contents:'),
'cols' => '80',
'rows' => '24',
'required' => true
));
从数据库记录。该记录是一个包含页面 HTML 文本的 BLOB,采用 UTF-8 格式。
$form->populate(array(
// ...
'body' =>
str_replace("\\n", "\n",
html_entity_decode(
$page['body']
)
),
// ...
));
不幸的是,当文本的长度大于 2934 字节时,根本不会填充该字段。我尝试maxlength
通过发出设置
'maxlength' => '4096',
但它似乎没有效果。
现在,根据我在网上找到的信息,textarea
限制应该大于 2934 字节,更接近 30-60 KB。除了将字段拆分为两个单独的表单元素之外,我该如何解决这个问题?
更新 似乎罪魁祸首是字符“ß”,它在数据库中被编码为两个字符“Ô。该字符的第一次出现是在文本中的位置 2934,因此双字节表示中的第二个字符以某种方式使该字段无法完全接收文本。