@@ -388,7 +388,7 @@ private function normalizeUserInfo(string $user, ?string $pass = null): string
388388 return '' ;
389389 }
390390
391- $ pattern = '/(?:[^a-zA-Z0-9_\-\.~!\$& \'\(\)\*\+,;=]+|%(?![A-Fa-f0-9]{2}))/u ' ;
391+ $ pattern = '/(?:[^% a-zA-Z0-9_\-\.~\pL !\$& \'\(\)\*\+,;=]+|%(?![A-Fa-f0-9]{2}))/u ' ;
392392 $ userInfo = $ this ->encode ($ user , $ pattern );
393393
394394 if ($ pass !== null ) {
@@ -454,7 +454,7 @@ private function normalizePath(string $path): string
454454 return $ path ;
455455 }
456456
457- return $ this ->encode ($ path , '/(?:[^a-zA-Z0-9_\-\.~:@&=\+\$,\/;%] +|%(?![A-Fa-f0-9]{2}))/ ' );
457+ return $ this ->encode ($ path , '/(?:[^a-zA-Z0-9_\-\.~!\$& \' \(\)\*\+,;=%:@\/]+ +|%(?![A-Fa-f0-9]{2}))/ ' );
458458 }
459459
460460 /**
@@ -474,7 +474,7 @@ private function normalizeQuery(string $query): string
474474 $ query = ltrim ($ query , '? ' );
475475 }
476476
477- return $ this ->encode ($ query , '/(?:[^a-zA-Z0-9_\-\.~!\$& \'\(\)\*\+,;=%:@\/\?]+|%(?![A-Fa-f0-9]{2}))/ ' );
477+ return $ this ->encode ($ query , '/(?:[^a-zA-Z0-9_\-\.~!\$& \'\(\)\*\+,;=%:@\/\?]++ |%(?![A-Fa-f0-9]{2}))/ ' );
478478 }
479479
480480 /**
@@ -493,7 +493,7 @@ private function normalizeFragment(string $fragment): string
493493 $ fragment = ltrim ($ fragment , '# ' );
494494 }
495495
496- return $ this ->encode ($ fragment , '/(?:[^a-zA-Z0-9_\-\.~!\$& \'\(\)\*\+,;=%:@\/\?]+|%(?![A-Fa-f0-9]{2}))/ ' );
496+ return $ this ->encode ($ fragment , '/(?:[^a-zA-Z0-9_\-\.~!\$& \'\(\)\*\+,;=%:@\/\?]++ |%(?![A-Fa-f0-9]{2}))/ ' );
497497 }
498498
499499 /**
0 commit comments