0

我有一个 build.xml 文件,它指定一个带有日文字符的目录作为命令的参数。

<exec executable="${amxmlc_cmd}">
        <arg line="${amxmlc_opt}" />
        ...
        <arg line="-source-path+=Work/システム/_config_as" />
        ...
</exec>

在哪里

<condition property="amxmlc_cmd" value="cmd.exe">
        <os family="windows" />
</condition>
<condition property="amxmlc_opt" value='/c "${flex_sdk}bin/amxmlc"'>
        <os family="windows" />
</condition>

我收到错误“错误:无法打开'Work/????/_config_as”

我改为

<condition property="amxmlc_opt" value='/u/c "${flex_sdk}bin/amxmlc"'>
            <os family="windows" />
</condition>

但我得到同样的错误。

当我将 Windows 非 unicode 程序默认更改为日语时,出现错误“错误:无法打开'Work/システム/_config_as'”

任何帮助是极大的赞赏。感谢提前。

4

1 回答 1

0

那就是蚂蚁,它没有正确传递 Unicode 参数。仅当您将系统区域设置为日语并重新启动时,它才会起作用。 http://mihai-nita.net/2005/06/11/setting-the-user-and-system-locales/

===

更正:做了一些测试,这不是ant的错,是Java本身的错。我已经尝试过 Runtime.exec 和 ProcessBuilder.start,它们似乎都将参数转换为 ANSI,然后再将其传递给子应用程序。(子应用程序是 C,Unicode,并从 C 父级调用,Unicode,工作正常)

2011 年相当蹩脚(Java build 1.6.0_26-b03,尝试 7 会很有趣)

于 2011-10-07T09:59:07.297 回答