gpt4 book ai didi

java - ExecuteStreamCommand 不会读取外来字符

转载 作者:行者123 更新时间:2023-12-02 00:47:31 33 4
gpt4 key购买 nike

我们将 Apache Nifi 设置为将文件写入本地驱动器,然后运行处理这些文件的程序并输出对“响应”属性的响应。这是一个 JSON 字符串,然后我们将其传递给 API 以更新记录。

然而,问题是,虽然我们可以成功写入、读取和处理文件,但 Nifi 无法理解响应文本中的非英语字符。当我们发回响应时,这会导致名称被损坏。这仅适用于我们从程序收到的 JSON 字符串。

Nifi正在运行Windows 10环境当我们使用Nifi输出的文件手动运行程序时,我们得到了正确的输出。问题仅发生在 Nifi 中。

举个例子,输入json是:

{
"player" : "mörkö",
"target" : "goal",
"didhitin" : ""
}

这存储在我们的程序工作文件夹中,我们使用 ExecuteStreamCommand 调用程序,并将输入的 JSON 文件作为参数。 JSON 被处理,我们的程序输出以下 JSON,然后将其存储到流文件的响应属性中:

{
"player" : "mörkö",
"target" : "goal",
"didhitin" : "true"
}

但是,问题是,当 Nifi 将其读入流文件的响应属性时,它会变成

{
"player" : "m¤rk¤",
"target" : "goal",
"didhitin" : "true"
}

(不是实际过程,但足以证明问题)

当我们将其输入 API 时,要么会失败,要么会损坏原始名称(在本例中为玩家的值)。这都不是理想的输出。

到目前为止,我们已经发现这很可能是编码问题,但我们还没有找到一种方法来更改 Nifi 的编码以修复错误读取的字符。

最佳答案

通过在程序开头添加以下行来解决此问题:

Console.OutputEncoding = Encoding.UTF8;

这有效地强制程序输出 UTF-8 字符,这将与流程的其余部分保持一致。

关于java - ExecuteStreamCommand 不会读取外来字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57885562/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com