Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.12.3, 2.14.1
-
vso@vso-desktop:/tmp$ uname -a
Linux vso-desktop 3.13.0-43-generic #72~precise1-Ubuntu SMP Tue Dec 9 12:14:18 UTC 2014 x86_64 x86_64 x86_64 GNU/Linuxvso@vso-desktop:/tmp$ java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)vso@vso-desktop:/tmp$ ssh -v
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012vso@vso-desktop:/tmp$ uname -a Linux vso-desktop 3.13.0-43-generic #72~precise1-Ubuntu SMP Tue Dec 9 12:14:18 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux vso@vso-desktop:/tmp$ java -version java version "1.7.0_65" OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.12.04.1) OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode) vso@vso-desktop:/tmp$ ssh -v OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
-
Unknown
Description
For SFTP producer endpoints option "charset" is ignored and the output file is created using platform-default charset (usually UTF-8).
The simple Spring context illustrates the issue:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="stream:in?promptMessage=Enter something:" /> <to uri="sftp://localhost:22/vso/sandbox?charset=ISO-8859-1&username=fake_sftp_user&password=qwerty"/> </route> </camelContext> </beans>
This context defines a route that transfers the string entered by user via SFTP. If the user enters "Müller", I can see 7-byte message in the output directory (because "ü" is represented using 2 bytes in UTF-8). While it should be 6-byte message if the file was encoded in ISO-8859-1.
This problem affects only SFTP endpoints. File and FTP endpoints treat the "charset" option correctly.