From cdfd49bd02f15e7ca1a3efedbd6822a5907313ba Mon Sep 17 00:00:00 2001 From: Rodrigo Pedra Brum Date: Mon, 24 Jan 2022 23:48:06 -0300 Subject: [PATCH] Handle unicode characters on TrimStrings middleware --- src/Illuminate/Foundation/Http/Middleware/TrimStrings.php | 2 +- tests/Foundation/Http/Middleware/TrimStringsTest.php | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php b/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php index 857baf4b49d3..d3902276752a 100644 --- a/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php +++ b/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php @@ -53,7 +53,7 @@ protected function transform($key, $value) return $value; } - return is_string($value) ? trim($value, "  \t\n\r\0\x0B") : $value; + return is_string($value) ? preg_replace('~^\s+|\s+$~iu', '', $value) : $value; } /** diff --git a/tests/Foundation/Http/Middleware/TrimStringsTest.php b/tests/Foundation/Http/Middleware/TrimStringsTest.php index e03631876b4d..2d8aa672a8e8 100644 --- a/tests/Foundation/Http/Middleware/TrimStringsTest.php +++ b/tests/Foundation/Http/Middleware/TrimStringsTest.php @@ -35,12 +35,20 @@ public function testTrimStringsNBSP() $symfonyRequest = new SymfonyRequest([ // Here has some NBSP, but it still display to space. 'abc' => '  123   ', + 'xyz' => 'だ', + 'foo' => 'ム', + 'bar' => '  だ   ', + 'baz' => '  ム   ', ]); $symfonyRequest->server->set('REQUEST_METHOD', 'GET'); $request = Request::createFromBase($symfonyRequest); $middleware->handle($request, function (Request $request) { $this->assertSame('123', $request->get('abc')); + $this->assertSame('だ', $request->get('xyz')); + $this->assertSame('ム', $request->get('foo')); + $this->assertSame('だ', $request->get('bar')); + $this->assertSame('ム', $request->get('baz')); }); } }