From b8fbd3789b99748401cc5685455ea15d23471110 Mon Sep 17 00:00:00 2001 From: Joshua Blum Date: Mon, 13 Apr 2026 15:00:13 +0200 Subject: [PATCH 1/3] Add `u` regex option to include unicode --- src/Query/Builder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Query/Builder.php b/src/Query/Builder.php index da081638833..e6c1511e83d 100644 --- a/src/Query/Builder.php +++ b/src/Query/Builder.php @@ -805,7 +805,7 @@ protected function filterTestLike($item, $like) $pattern = Pattern::sqlLikeToRegex($like); - return preg_match('/'.$pattern.'/im', (string) $item); + return preg_match('/'.$pattern.'/imu', (string) $item); } protected function filterTestNotLike($item, $like) @@ -815,7 +815,7 @@ protected function filterTestNotLike($item, $like) protected function filterTestLikeRegex($item, $pattern) { - return preg_match("/{$pattern}/im", (string) $item); + return preg_match("/{$pattern}/imu", (string) $item); } protected function filterTestNotLikeRegex($item, $pattern) From f92413459eead34c0d3916cb2f2a4160733a6f7c Mon Sep 17 00:00:00 2001 From: Joshua Blum Date: Mon, 13 Apr 2026 15:00:59 +0200 Subject: [PATCH 2/3] Same here, `mb_strtolower` to make it work with unicode --- src/Query/EloquentQueryBuilder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Query/EloquentQueryBuilder.php b/src/Query/EloquentQueryBuilder.php index 617d74b452d..a4bc452a232 100644 --- a/src/Query/EloquentQueryBuilder.php +++ b/src/Query/EloquentQueryBuilder.php @@ -175,7 +175,7 @@ public function where($column, $operator = null, $value = null, $boolean = 'and' if ($operator !== null && strtolower($operator) == 'like') { $grammar = $this->builder->getConnection()->getQueryGrammar(); - $this->builder->whereRaw('LOWER('.$grammar->wrap($this->column($column)).') LIKE ?', strtolower($value), $boolean); + $this->builder->whereRaw('LOWER('.$grammar->wrap($this->column($column)).') LIKE ?', mb_strtolower($value), $boolean); return $this; } From 19d2e6e39616a811cd0d9c1c4f7950e153fd10bd Mon Sep 17 00:00:00 2001 From: Joshua Blum Date: Mon, 13 Apr 2026 15:02:15 +0200 Subject: [PATCH 3/3] Add test --- tests/Data/Entries/EntryQueryBuilderTest.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/Data/Entries/EntryQueryBuilderTest.php b/tests/Data/Entries/EntryQueryBuilderTest.php index 1d6b4371bd8..c8418199537 100644 --- a/tests/Data/Entries/EntryQueryBuilderTest.php +++ b/tests/Data/Entries/EntryQueryBuilderTest.php @@ -967,6 +967,9 @@ public function entries_are_found_using_like($like, $expected) '/ test', 'test /', 'test / test', + 'Über dem Meer', + 'über dem meer', + 'Ärger', ])->each(function ($val, $i) { EntryFactory::id($i) ->slug('post-'.$i) @@ -999,6 +1002,10 @@ public static function likeProvider() '%/' => ['/', 'test /'], '/%' => ['/', '/ test'], '%/%' => ['/', '/ test', 'test /', 'test / test'], + '%über%' => ['Über dem Meer', 'über dem meer'], + '%Über%' => ['Über dem Meer', 'über dem meer'], + '%ärger%' => ['Ärger'], + '%Ärger%' => ['Ärger'], ])->mapWithKeys(function ($expected, $like) { return [$like => [$like, $expected]]; });