Project

General

Profile

Actions

Bug #9245

closed

Kernel::system gives wrong output for utf-8 characters on windows under utf-8 console

Added by leifcr (Leif Ringstad) over 10 years ago. Updated over 2 years ago.

Status:
Closed
Assignee:
Target version:
-
ruby -v:
ruby 2.0.0p353 (2013-11-22) [i386-mingw32]
Backport:
[ruby-core:59070]

Description

Under windows console running in utf-8 mode (chcp 65001), it is expected to print utf-8 encoded characters in a script from system calls correctly.

To reproduce, create a file in utf-8 format running this:

test.rb

encoding: UTF-8

system "echo abcæøå"

output:
Make sure to set utf-8 console on windows

chcp 65001
ruby test.rb
abcæøå

The expected output is:
abcæøå

Running the following on a command prompt gives the correct output:

ruby -e "system 'echo abcæøå'"

abcæøå

The problem comes clear when running other Windows commands through command line parameters e.g:
system("notepad.exe abcæøå.txt")

Notepad will complain not finding the file abcæøå.txt instead of abcæøå.txt

It seems that there is an internal encoding done before running the command.

Actions

Also available in: Atom PDF

Like0
Like0