Encoding Mule flow将奇怪的字符添加到文件开头

Encoding Mule flow将奇怪的字符添加到文件开头,encoding,utf-8,mule,Encoding,Utf 8,Mule,我只是在移动文件,但出于某种原因,它们在文件的前面添加了奇怪的字符。 之前: (用UTF-8编码) 之后:(用ANSI编码) 我尝试过的事情: 显式地将编码设置为utf-8 显式地将编码设置为ANSI 使用编码设置为utf-8的对象到字节数组 使用编码设置为utf-8的对象来字符串 以下是我的流程和相关连接器: <sftp:connector name="Sftp" maxConnectionPoolSize="3" doc:name="SFTP"/> <file:connec

我只是在移动文件,但出于某种原因,它们在文件的前面添加了奇怪的字符。 之前:

(用UTF-8编码)

之后:(用ANSI编码)

我尝试过的事情:

显式地将编码设置为utf-8

显式地将编码设置为ANSI

使用编码设置为utf-8的对象到字节数组

使用编码设置为utf-8的对象来字符串

以下是我的流程和相关连接器:

<sftp:connector name="Sftp" maxConnectionPoolSize="3" doc:name="SFTP"/>
<file:connector name="FileConnector" autoDelete="true" streaming="false" validateConnections="true" doc:name="FileConnector"/>

<flow name="SftpOutBound" initialState="stopped">
    <file:inbound-endpoint
        path="${ftp.base}/${id}/export"
        pollingFrequency="${polling.frequency.millis}"
        responseTimeout="${standard.response.timeout.millis}"
        fileAge="${standard.fileage.delay.millis}"
        connector-ref="deletingFileConnector"
        doc:name="OutBound">
        <file:filename-wildcard-filter pattern="${out.filter}" />
    </file:inbound-endpoint>
    <object-to-byte-array-transformer doc:name="Object to Byte Array" />

    <all doc:name="all">
        <file:outbound-endpoint
            path="${archive.out}/${id}"
            outputPattern="#[header:INBOUND:originalFileName]_#[function:datestamp:${standard.date.format}]_#[function:systime]"
            responseTimeout="${standard.response.timeout.millis}"
            connector-ref="deletingFileConnector"
            doc:name="Archive" />
        <logger
            level="WARN"
            message="Uploaded file from ${ftp.base}/${id}/export/#[header:INBOUND:originalFileName]"
            doc:name="Logger"/>
        <sftp:outbound-endpoint
            connector-ref="Sftp"
            host="${host}"
            port="${port}"
            path="${in.path}"
            user="${user}"
            identityFile="${configFullPath}/${identity.file}"
            passphrase="${passphrase}"
            responseTimeout="${standard.response.timeout.millis}"
            keepFileOnError="true"
            duplicateHandling="overwrite"
            exchange-pattern="one-way"
            outputPattern="#[header:INBOUND:originalFileName]"
            doc:name="SFTP"/>
    </all>
</flow>


谢谢你的帮助

文件的有效负载结果:入站端点的类型为InputStream。为什么不按原样(字节[])保存文件和sftp出站端点


如果您必须将其转换为字符串,那么我建议您在阅读后使用
,而不是

,因此当我升级到3.6.1时,Mule 3.5.0似乎出现了问题。仍然不确定是什么原因导致了它,但版本更改解决了它。

我尝试不使用它,让端点处理它,但它仍然存在问题。这就是我最初的想法,然后我尝试了我在帖子中列出的所有东西。
¬í ur [B¬óøTà  xp  žÌtestCol1,testCol2,testCol3
<sftp:connector name="Sftp" maxConnectionPoolSize="3" doc:name="SFTP"/>
<file:connector name="FileConnector" autoDelete="true" streaming="false" validateConnections="true" doc:name="FileConnector"/>

<flow name="SftpOutBound" initialState="stopped">
    <file:inbound-endpoint
        path="${ftp.base}/${id}/export"
        pollingFrequency="${polling.frequency.millis}"
        responseTimeout="${standard.response.timeout.millis}"
        fileAge="${standard.fileage.delay.millis}"
        connector-ref="deletingFileConnector"
        doc:name="OutBound">
        <file:filename-wildcard-filter pattern="${out.filter}" />
    </file:inbound-endpoint>
    <object-to-byte-array-transformer doc:name="Object to Byte Array" />

    <all doc:name="all">
        <file:outbound-endpoint
            path="${archive.out}/${id}"
            outputPattern="#[header:INBOUND:originalFileName]_#[function:datestamp:${standard.date.format}]_#[function:systime]"
            responseTimeout="${standard.response.timeout.millis}"
            connector-ref="deletingFileConnector"
            doc:name="Archive" />
        <logger
            level="WARN"
            message="Uploaded file from ${ftp.base}/${id}/export/#[header:INBOUND:originalFileName]"
            doc:name="Logger"/>
        <sftp:outbound-endpoint
            connector-ref="Sftp"
            host="${host}"
            port="${port}"
            path="${in.path}"
            user="${user}"
            identityFile="${configFullPath}/${identity.file}"
            passphrase="${passphrase}"
            responseTimeout="${standard.response.timeout.millis}"
            keepFileOnError="true"
            duplicateHandling="overwrite"
            exchange-pattern="one-way"
            outputPattern="#[header:INBOUND:originalFileName]"
            doc:name="SFTP"/>
    </all>
</flow>