Tcl has used for some time utf-8 (unicode) encoded
strings to represent a rich set of non-ascii
characters. When passing arguments to the execvp
function these strings have to be converted to the
underlying filesystem encodings. This behaviour is
badly needed as users want to make full and correct
usage of their own language even when handling file names.
blt::bgexec does no conversion (at least up to version
2.4z), while the original tcl 'exec' does. What I have
done is copy the relevant code from the tcl source to
src/bltUnixPipe. I compiled blt on my linux box (tcl/tk
8.3.3) and found it works.
There is mention of a workaround using the 'iconv'
library in the 'bugs' section, but is not general: this
patch is supposed to solve the problem within tcl.
context diff for src/bltUnixPipe.c