-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[Process] Non ASCII characters disappearing during the escapeshellarg #21485
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
If the LC_CTYPE is not set at UTF-8, the escapeshellarg() function will remove every non-ascii characters. As it's usual in europe to have directories with non-ascii chars in their name (ex : ~/Vidéos) the function should throw an exception if we're trying to submit it an argument containing non-ascii param and the LC_CTYPE is not set to use UTF-8
what about doing escaping ourselves instead? |
…n/symfony into escapeargumentfix
I edited the current test case and the logic for Linux, as I don't know how the function is working on windows I didn't patch it. ProcessUtilsTest.php is passing on my environment |
👍 (to be merged on 2.7, Windows is unaffected) |
Thank you @GuillaumeVerdon. |
…apeshellarg (GuillaumeVerdon) This PR was submitted for the 3.2 branch but it was merged into the 2.7 branch instead (closes #21485). Discussion ---------- [Process] Non ASCII characters disappearing during the escapeshellarg If the LC_CTYPE is not set at UTF-8, the escapeshellarg() function will remove every non-ascii characters. As it's usual in europe to have directories with non-ascii chars in their name (ex : ~/Vidéos) the function should throw an exception if we're trying to submit it an argument containing non-ascii param and the LC_CTYPE is not set to use UTF-8 | Q | A | ------------- | --- | Branch? | 2.7 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | | Fixed tickets | | License | MIT | Doc PR | I had this issue while using the lib ffmpeg and giving it a path like "~/Vidéos" the "é" chars was disappearing from the command giving a RuntimeException. The problem was my LC_CTYPE that wasn't set properly, I believe an exception should be raised before the RuntimeException to warn the user of that behavior Commits ------- 3779f3f [Process] Non ASCII characters disappearing during the escapeshellarg
If the LC_CTYPE is not set at UTF-8, the escapeshellarg() function will remove every non-ascii characters.
As it's usual in europe to have directories with non-ascii chars in their name (ex : ~/Vidéos) the function should throw an exception if we're trying to submit it an argument containing non-ascii param and the LC_CTYPE is not set to use UTF-8
I had this issue while using the lib ffmpeg and giving it a path like "~/Vidéos" the "é" chars was disappearing from the command giving a RuntimeException.
The problem was my LC_CTYPE that wasn't set properly, I believe an exception should be raised before the RuntimeException to warn the user of that behavior