Skip to content

Commit 8c12bbe

Browse files
committed
Fix UTF-8 encoding and decoding with attributes
Closes #698
1 parent 2f53d49 commit 8c12bbe

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

src/Models/Concerns/HasAttributes.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ protected function encodeValue(string $value): string
220220
*/
221221
protected function decodeValue(string $value): string
222222
{
223-
if (MbString::isLoaded() && MbString::isUtf8($value)) {
223+
if (MbString::isLoaded() && ! MbString::isUtf8($value)) {
224224
return mb_convert_encoding($value, 'UTF-8', 'ISO-8859-1');
225225
}
226226

tests/Unit/Models/ModelSerializationTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public function testModelWithTimestampsCanBeSerializedAndEncoded()
1818
$lastlogon = (new Timestamp('windows-int'))->fromDateTime(new DateTime());
1919

2020
$model = (new User())->setRawAttributes([
21+
'cn' => 'René',
2122
'whenchanged' => [(string) $whenchanged],
2223
'lastlogon' => [(string) $lastlogon],
2324
]);
@@ -32,6 +33,8 @@ public function testModelWithTimestampsCanBeSerializedAndEncoded()
3233

3334
$this->assertTrue($model->is($unserializedAndUnencoded));
3435

36+
$this->assertEquals($model->getOriginal()['cn'], $unserializedAndUnencoded->getOriginal()['cn']);
37+
3538
$this->assertEquals($model->getOriginal()['lastlogon'], $unserializedAndUnencoded->getOriginal()['lastlogon']);
3639
$this->assertEquals($model->getOriginal()['whenchanged'], $unserializedAndUnencoded->getOriginal()['whenchanged']);
3740

0 commit comments

Comments
 (0)