【问题标题】:Ant: Malformed \uxxxx encoding in propertyfile taskAnt:propertyfile 任务中的格式错误的 \uxxxx 编码
【发布时间】:2013-06-07 05:44:57
【问题描述】:

我编写的 Ant 脚本出现以下错误。

我已经做了一些谷歌搜索,发现问题出在包含 \u 的字符串上,由于目录分隔符,在 Windows 下会发生这种情况。我将所有这些都更改为 / 但错误仍然存​​在。

我的脚本中肯定没有剩余的 \u 字符串。

java.lang.IllegalArgumentException: Malformed \uxxxx encoding.

执行propertyfile任务时出现错误,所以我检查了我要更改的文件。另一方面,这包含多个 \u 字符串。该文件与 ant 无关,它是一个 borland 项目文件 (xml),其中包含像 [someParameter]=[someValue] 这样的一行。

我只想将 [someValue] 增加 1。

所以我的问题是:

我要更改的属性文件是否会导致提到的错误

如果答案是“是”,

我能做什么,除了使用正则表达式任务(例如查找行、属性正则表达式值、数学+1 值和正则表达式替换值)

【问题讨论】:

    标签: regex ant encoding


    【解决方案1】:

    我知道不久前有人问过这个问题,但我在没有答案的情况下偶然发现了这个问题,在我发现的另一个网站 (http://www.coderanch.com/t/107014/tools/Malformed-uxxxx-encoding-error) 上,我发现这可能发生在你应该是文件目的地而不是“\”时由于解析的工作原理而使用“/”/希望这会有所帮助。

    【讨论】:

    • 我确认在我的 .properties 文件中将 \ 更改为 / 解决了这个问题。
    • 我遇到了同样的问题,因为我在 mvn 引用的属性文件中用 \ 更改了一些 /。
    • 我的情况是有人输入了无效代码\u<wrongcode>
    • 酷!在我的 .properties 中用我的 windows 路径的 / 替换 \ 解决了这个问题。
    • 因为我们的团队是多操作系统,所以我选择了 / 而不是 \\,但就是这样。
    【解决方案2】:

    就我而言,这是 maven 抛出此错误。

    [INFO] Building some-prj 1.0.0-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  0.508 s
    [INFO] Finished at: 2021-08-31T08:00:30-07:00
    [INFO] ------------------------------------------------------------------------
    [ERROR] Malformed \uxxxx encoding.
    [ERROR] 
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    

    我不得不重命名 .m2 目录

    mv ~/.m2 ~/m2_20210831

    并重新启动 Maven 构建

    mvn clean package

    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  48.927 s
    [INFO] Finished at: 2021-08-31T08:04:56-07:00
    [INFO] ------------------------------------------------------------------------
    

    【讨论】:

    • 当前选择的解决方案(最多支持)没有为我解决问题;核对 ~/.m2 目录,正如这里所建议的那样。一定是损坏的包之类的。
    【解决方案3】:

    使用双反斜杠(“\\”),如“abc\\user”,相当于“abc\user”,可以解决问题。

    【讨论】:

      【解决方案4】:

      首先,您应该尝试运行带有 调试标志 的 ant 脚本,以确定是哪个文件导致了问题 在 Eclipse 中,您可以通过

      Run > External Tools > External Tools Configurations... > Main 
      

      并将“-d”(不带引号)添加到“参数”

      然后尝试在 Eclipse 中编辑文件,因为某些编辑器(例如“写字板”)可能会弄乱文件

      【讨论】:

        【解决方案5】:

        其实我发现问题出在local.cfg文件编码上。如果我们使用写字板或其他非代码编辑软件创建(编辑)local.cfg 文件,它会更改文件编码。因此,当 ant 尝试加载本地配置文件时(由于 dspace-installer/build.xml 文件中的行,它需要 ASCII 字符编码的 .cfg 文件。因此,当它获取 UTF 编码文件时,会引发异常。 解决方案: 删除local.cfg文件,使用Visual Studio代码等代码编辑软件重新创建,并编辑/写入必要的配置设置。

        【讨论】:

          猜你喜欢
          • 2021-09-22
          • 2021-11-04
          • 2021-09-06
          • 1970-01-01
          • 2021-07-29
          • 1970-01-01
          • 2013-03-11
          • 2012-02-14
          • 1970-01-01
          相关资源
          最近更新 更多