diff --git a/typo3/sysext/extbase/Classes/Validation/Validator/StringLengthValidator.php b/typo3/sysext/extbase/Classes/Validation/Validator/StringLengthValidator.php index c249773a633eaebfc888ee83cfbcacbca2e00675..68fd428f98095b5987a2012abea14caf760f44ee 100644 --- a/typo3/sysext/extbase/Classes/Validation/Validator/StringLengthValidator.php +++ b/typo3/sysext/extbase/Classes/Validation/Validator/StringLengthValidator.php @@ -55,8 +55,7 @@ class StringLengthValidator extends AbstractValidator return; } - // @todo Use \TYPO3\CMS\Core\Charset\CharsetConverter::strlen() instead; How do we get the charset? - $stringLength = strlen($value); + $stringLength = mb_strlen($value, 'utf-8'); $isValid = true; if ($stringLength < $this->options['minimum']) { $isValid = false; diff --git a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/StringLengthValidatorTest.php b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/StringLengthValidatorTest.php index fcb7368ba5b95a90443980e4f0e79463122d06e8..30cb907f86a2189e5f83aab8b6d70fb8cbd5ba3e 100644 --- a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/StringLengthValidatorTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/StringLengthValidatorTest.php @@ -268,8 +268,11 @@ class StringLengthValidatorTest extends \TYPO3\Components\TestingFramework\Core\ */ public function validateRegardsMultibyteStringsCorrectly() { - // $this->validatorOptions(array('maximum' => 8)); -// $this->assertFalse($this->validator->validate('überlang')->hasErrors()); - $this->markTestSkipped('Validator needs to be adjusted regarding multibyte char lengths.'); + $options = ['minimum' => 0, 'maximum' => 8]; + $validator = $this->getMockBuilder($this->validatorClassName) + ->setMethods(['dummy']) + ->setConstructorArgs([$options]) + ->getMock(); + $this->assertFalse($validator->validate('überlang')->hasErrors()); } }