1.7.1: unable to run the a bash script resides in chinese path using: c:\cygwin\bin\bash --login script.

Andy Koppe andy.koppe@gmail.com
Fri Feb 19 20:29:00 GMT 2010


Hongyi Zhao:
> C:\cygwin\bin\bash --login "%~dp0myscript"
> ...
> Preferred POSIX equivalent is: "F:/zhaohs/Desktop/鏂版煡鏂囩尞/myscript"
> ...
> /usr/bin/bash: "F:\zhaohs\Desktop\新查文献\myscript": No such file or
directory

Looks like there's some sort of GBK vs UTF-8 mixup going on, because
'鏂版煡鏂囩尞' is the same byte sequence in GBK as '新查文献' is in UTF-8:
\xE6\x96\xB0\xE6\x9F\xA5\xE6\x96\x87\xE7\x8C\xAE

I take it the actual directory name is '新查文献'? (Babelfish seems to be
able to make some sense of that one but not the other.)

Do you know what the encoding of your batch file is? And have you got
any locale variables (LC_ALL, LC_CTYPE, LANG) set when invoking it?


>>@echo off
>>C:\cygwin\bin\bash --login "%~dp0myscript"
>
> I've found a more strange thing: If I change the batch file into the
> following form, then it will be run smoothly:
>
> @echo off
> C:\cygwin\bin\bash --login %~dp0myscript
>
> The QUOTATION MARK in the former is used to deal with the whitespaces
> appearing in the myscript's pathname, though this is relatively rare
> case.  But in the latter case, if there're whitespaces in the
> myscript's pathname, the batch will fail to run.

Hmm, perhaps the argument mangling at program startup is using the
ANSI codepage (i.e. GBK in this case) when it should be using UTF-8?

Andy

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list