[#106341] [Ruby master Bug#18369] users.detect(:name, "Dorian") as shorthand for users.detect { |user| user.name == "Dorian" } β dorianmariefr <noreply@...>
Issue #18369 has been reported by dorianmariefr (Dorian MariθΎΏ).
14 messages
2021/11/30
[#106351] [Ruby master Bug#18371] Release branches (release information in general) β "tenderlovemaking (Aaron Patterson)" <noreply@...>
Issue #18371 has been reported by tenderlovemaking (Aaron Patterson).
7 messages
2021/11/30
[ruby-core:106202] [Ruby master Bug#18353] Czech keyboard input encoding on czech Windows
From:
koleq <noreply@...>
Date:
2021-11-22 08:12:06 UTC
List:
ruby-core #106202
Issue #18353 has been updated by koleq (OndΕej Kurz).
nobu (Nobuyoshi Nakada) wrote in #note-1:
> Seems default external encoding doesn't match.
> What does `chcp.com` command say?
> And what does `ruby -e 'p Encoding.default_encoding, Encoding.default_internal, Encoding.locale_charmap'`?
at the time of writing this I'm at work but I also have ruby here so here are result from my work pc.
```
H:\>chcp
Active code page: 852
H:\>ruby -e 'p Encoding.default_encoding, Encoding.default_internal, Encoding.locale_charmap'
-e:1:in `<main>': undefined method `default_encoding' for Encoding:Class (NoMethodError)
Did you mean? default_internal
H:\>ruby -e 'p Encoding.default_internal, Encoding.locale_charmap'
nil
"CP852"
H:\>ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x64-mingw32]
```
----------------------------------------
Bug #18353: Czech keyboard input encoding on czech Windows
https://bugs.ruby-lang.org/issues/18353#change-94808
* Author: koleq (OndΕej Kurz)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x64-mingw32]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
Inputing czech characters in czech Windows does not work unless "`text.force_encoding("CP852")`" is used, I would be expecting for this to work seemlesly just like it does in python
This issue also does not happen in WSL (Windows Subsystem for Linux) where is just works without encoding issues.
To test you can run this code and copy the "`ΔΕ‘ΔΕΕΎΓ½Γ‘ΓΓ©`" and paste it,
you will see the fisrt print works just fine but you input does not.
I do not know if it's reproduceble on another language version of Windows.
**Ruby**
``` ruby
puts("ΔΕ‘ΔΕΕΎΓ½Γ‘ΓΓ©")
text = gets
# input.force_encoding("CP852") this line fixes the input, but probably not the best solution if other windows languages use another code page.
puts(text)
```
output:
```
ΔΕ‘ΔΕΕΎΓ½Γ‘ΓΓ©
ΔΕ‘ΔΕΕΎΓ½Γ‘ΓΓ©
οΏ½οΏ½οΏ½οΏ½μ ‘οΏ½
```
"```text.encoding```" returns "```UTF-8```"
"```text.bytes.inspect```" returns "```[216, 231, 159, 253, 167, 236, 160, 161, 130, 10]```"
**Python 3**
``` python
print("ΔΕ‘ΔΕΕΎΓ½Γ‘ΓΓ©")
text = input()
print(text)
```
output:
```
ΔΕ‘ΔΕΕΎΓ½Γ‘ΓΓ©
ΔΕ‘ΔΕΕΎΓ½Γ‘ΓΓ©
ΔΕ‘ΔΕΕΎΓ½Γ‘ΓΓ©
```
I don't know how to check encoding or return bytes of the current encoding in python.
I was told on Ruby discord that my terminal is misconfigured but that is not the case, it does it in multiple terminals and I can't be expecting users to be changing their terminal settings.
other languages like Python or C# do not seem to have this issue.
I wonder what python does to ge around encoding issues on Czech Windows.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>