Magento 在可配置的产品中,重音为两个字符的字符

Magento 在可配置的产品中,重音为两个字符的字符,magento,Magento,我们销售的可配置产品需要有字符限制的文本字段(我们销售带有客户姓名的个性化手镯) 因此,我们在产品页面上创建了一个限制为15个字符的文本字段 如果我在这个字段中加上“abcdefghijklmno”(15个字母),这是非常有效的 但如果我把“abcdéfghijklmno”(仍然是15个字母,但带有“e”锐音符)放进去,它就不起作用了,它说“请指定产品选项” 经过几次测试,我发现带有重音的字母被算作两个字符 如何避免这个错误 ÉÉ 用html\u entity\u decode($string)

我们销售的可配置产品需要有字符限制的文本字段(我们销售带有客户姓名的个性化手镯)

因此,我们在产品页面上创建了一个限制为15个字符的文本字段

如果我在这个字段中加上“abcdefghijklmno”(15个字母),这是非常有效的

但如果我把“abcdéfghijklmno”(仍然是15个字母,但带有“e”锐音符)放进去,它就不起作用了,它说“请指定产品选项”

经过几次测试,我发现带有重音的字母被算作两个字符

如何避免这个错误

ÉÉ

html\u entity\u decode($string)包装变量

努力学习和

如果你想更换所有的acutes

在指定产品选项之前,您必须创建一个列表并替换它

ÉÉ

html\u entity\u decode($string)包装变量

努力学习和

如果你想更换所有的acutes

在指定产品选项之前,您必须创建一个列表并替换它

这很可能是字符编码的问题,例如UTF-8与拉丁语1

你没有提到你在用什么编程语言。假设这是一个web应用程序,很可能是PHP,那么您可能可以使用
mb_strlen
(计数字符)而不是
strlen
(计数字节


如果不是PHP,其他编程语言也有类似的函数来计算字符而不是字节。

这很可能是字符编码的问题,例如UTF-8 vs Latin1

你没有提到你在用什么编程语言。假设这是一个web应用程序,很可能是PHP,那么您可能可以使用
mb_strlen
(计数字符)而不是
strlen
(计数字节


如果不是PHP,其他编程语言也有类似的函数来计算字符而不是字节。

多亏了您,我也找到了解决方案:

您必须编辑此文件:app/code/core/Mage/Catalog/Model/Product/Option/Type/Text.php

更换(第49行周围):

如果(strlen($value)==0&&$option->getIsRequire()&&&!$this->getProduct()->getSkipCheckRequiredOption()){ $this->setIsValid(false); Mage::ThroweException(Mage::helper(“目录”)->(请指定产品所需的选项); } 如果(strlen($value)>$option->getMaxCharacters()&&&$option->getMaxCharacters()>0){ $this->setIsValid(false); Mage::throwException(Mage::helper('catalog')->(文本太长)); 作者:

如果(mb_strlen($value,'UTF-8')==0&&&$option->getIsRequire()&&&!$this->getProduct()->getSkipCheckRequiredOption()){ $this->setIsValid(false); Mage::ThroweException(Mage::helper(“目录”)->(请指定产品所需的选项); } 如果(mb_strlen($value,'UTF-8')>$option->getMaxCharacters()&&&$option->getMaxCharacters()>0){ $this->setIsValid(false);
Mage::throwException(Mage::helper('catalog')->(文本太长);多亏了您,我找到了解决方案:

您必须编辑此文件:app/code/core/Mage/Catalog/Model/Product/Option/Type/Text.php

更换(第49行周围):

如果(strlen($value)==0&&$option->getIsRequire()&&&!$this->getProduct()->getSkipCheckRequiredOption()){ $this->setIsValid(false); Mage::ThroweException(Mage::helper(“目录”)->(请指定产品所需的选项); } 如果(strlen($value)>$option->getMaxCharacters()&&&$option->getMaxCharacters()>0){ $this->setIsValid(false); Mage::throwException(Mage::helper('catalog')->(文本太长)); 作者:

如果(mb_strlen($value,'UTF-8')==0&&&$option->getIsRequire()&&&!$this->getProduct()->getSkipCheckRequiredOption()){ $this->setIsValid(false); Mage::ThroweException(Mage::helper(“目录”)->(请指定产品所需的选项); } 如果(mb_strlen($value,'UTF-8')>$option->getMaxCharacters()&&&$option->getMaxCharacters()>0){ $this->setIsValid(false); Mage::throwException(Mage::helper('catalog')->(文本太长));
$example = html_entity_decode("abcdéfghijklmno");
print_r($example);
if (strlen($value) == 0 && $option->getIsRequire() && !$this->getProduct()->getSkipCheckRequiredOption()) { $this->setIsValid(false); Mage::throwException(Mage::helper('catalog')->__('Please specify the product\'s required option(s).')); } if (strlen($value) > $option->getMaxCharacters() && $option->getMaxCharacters() > 0) { $this->setIsValid(false); Mage::throwException(Mage::helper('catalog')->__('The text is too long')); if (mb_strlen($value,'UTF-8') == 0 && $option->getIsRequire() && !$this->getProduct()->getSkipCheckRequiredOption()) { $this->setIsValid(false); Mage::throwException(Mage::helper('catalog')->__('Please specify the product\'s required option(s).')); } if (mb_strlen($value,'UTF-8') > $option->getMaxCharacters() && $option->getMaxCharacters() > 0) { $this->setIsValid(false); Mage::throwException(Mage::helper('catalog')->__('The text is too long'));