Skip to content

Commit f73afb9

Browse files
committed
Fix CharsetValidator with string encoding
1 parent 4bf657a commit f73afb9

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

src/Symfony/Component/Validator/Constraints/CharsetValidator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public function validate(mixed $value, Constraint $constraint): void
3838
if (!\in_array(mb_detect_encoding($value, $constraint->encodings, true), (array) $constraint->encodings, true)) {
3939
$this->context->buildViolation($constraint->message)
4040
->setParameter('{{ detected }}', mb_detect_encoding($value, strict: true))
41-
->setParameter('{{ encodings }}', implode(', ', $constraint->encodings))
41+
->setParameter('{{ encodings }}', implode(', ', (array) $constraint->encodings))
4242
->setCode(Charset::BAD_ENCODING_ERROR)
4343
->addViolation();
4444
}

src/Symfony/Component/Validator/Tests/Constraints/CharsetValidatorTest.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ public function testEncodingIsValid(string|\Stringable $value, array|string $enc
3737
/**
3838
* @dataProvider provideInvalidValues
3939
*/
40-
public function testInvalidValues(string $value, array $encodings)
40+
public function testInvalidValues(string $value, array|string $encodings)
4141
{
4242
$this->validator->validate($value, new Charset(encodings: $encodings));
4343

4444
$this->buildViolation('The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.')
4545
->setParameter('{{ detected }}', 'UTF-8')
46-
->setParameter('{{ encodings }}', implode(', ', $encodings))
46+
->setParameter('{{ encodings }}', implode(', ', (array) $encodings))
4747
->setCode(Charset::BAD_ENCODING_ERROR)
4848
->assertRaised();
4949
}
@@ -73,6 +73,7 @@ public static function provideValidValues()
7373

7474
public static function provideInvalidValues()
7575
{
76+
yield ['my non-Äscîi string', 'ASCII'];
7677
yield ['my non-Äscîi string', ['ASCII']];
7778
yield ['😊', ['7bit']];
7879
}

0 commit comments

Comments
 (0)