Windows: Change command line interface to UTF-8#12377
Open
larskanis wants to merge 1 commit intoruby:masterfrom
Open
Windows: Change command line interface to UTF-8#12377larskanis wants to merge 1 commit intoruby:masterfrom
larskanis wants to merge 1 commit intoruby:masterfrom
Conversation
Contributor
Author
|
The test is modified to show, that arbitrary Unicode characters can work now. However it is not necessary to change the test - it passes with and without modification. |
Contributor
Author
|
It would be nice if this PR could be merged to Ruby-3.4 since it fixes longstanding bugs. I added an item to the compatibility section of the NEWS.md. |
This comment has been minimized.
This comment has been minimized.
Contributor
Author
|
I rebased this and hope this can be merged to ruby-4.0. |
a9eb74f to
84571e0
Compare
larskanis
added a commit
to oneclick/rubyinstaller2-packages
that referenced
this pull request
Dec 20, 2025
ruby/ruby#12377 This is proposed and asked since one year, but Ruby core team seems too busy to care about it.
74d3baa to
38331ec
Compare
Contributor
Author
|
I added this patch to RubyInstaller, so that it's part of rubyinstaller-head + github CI since 2025-12-20 : oneclick/rubyinstaller2-packages@ddda949 . If there are no objections, it will be part of RubyInstaller-4.0. |
... even when the Windows codepage isn't set to 65001/UTF-8. A non-UTF-8 codepage is still the default on Windows-11. The following inputs are changed to consistently work with UTF-8: - script name - include paths - script input from stdin They are currently a inconsistent mix of locale encoding and UTF-8, depending on the situation. The adjusted tests don't trigger encoding issues when the codepage is 65001 (UTF-8), but they do on 850 or 437 or so. Therefore it doesn't fail on Github Actions, which sets the codepage to UTF-8 per default.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The following inputs are changed to consistently work with UTF-8:
They are currently a inconsistent mix of locale encoding and UTF-8, depending on the situation.
Given the following script and a codepage of 850 it changes
from:toto:... and with code from STDIN the changes look like so:
This PR doesn't change
STDINencoding when keystrokes are read from the console. They are still in locale encoding. This is because it is difficult to implement UTF-8 there and it is a different topic than the command line interface.This PR works equally with Prism and Parse.y parser.
Closes [Bug #20774]
Closes [Bug #20699]
Closes oneclick/rubyinstaller2#265