apache / hop

Hop Orchestration Platform
https://hop.apache.org/
Apache License 2.0
959 stars 347 forks source link

[Bug]: The "Text file output" step does not save binary files correctly #3219

Open ZiBnv opened 1 year ago

ZiBnv commented 1 year ago

Apache Hop version?

2.5.0

Java version?

11.0.20

Operating system

Windows

What happened?

The "Text file output" step does not save binary files correctly. When specifying the windows-1251 encoding for the binary character 98, the character 3F is saved.

Issue Priority

Priority: 3

Issue Component

Component: Hop Gui

ZiBnv commented 1 year ago

Comparison of files imported by apache hop and the browser: https://disk.yandex.ru/i/yo5K18GnYpa6ig

hpl file: https://disk.yandex.ru/d/hWMeB4tnBDmhtg

Probably the problem is not at the "Text file output" step, but at the "HTTP client" step

mattcasters commented 11 months ago

Could you clarify this case and add a reproduction path? Hop is using UTF-8 internally which is also the default for the HTTP client.

cor277 commented 7 months ago

I have the same problem on PUT image on S3 with REST client. It change the file content (i read it with "Load file content in memory", i checked the file and for example, the original start with : RIFF\¯ WEBPVP8LP¯ /óÁb @lÛH’4ö4z{ mþÏw{Dôò_û+€þ$Ù&}Cé]טó8®ö# *Ü­Õ±$ùvÍ^)½ íh³'Û$P{ÁÝèlóhIê÷Y’5––VÍWÈó1àÔ‚5ï£MÒVy¤QG¡@ å ˜ä »—>©"´’쁶½R ­gB,7{**Är„wŠ¢Ðã&[N€¢IåUý –ãxAEÁ30Ú>*‰Šj 2yBRZ5 —y=’F¾KBøÑßOE²í*ý?@þÕ á.YæœáÅ’I’$I1œÀpœÄ{9õÉèsÿÿ]û: NkÛ–š-é¿$ =Iæ«£ïêÿÀŸBô ÑIˆï B€ yøߘ{·œHeS°¹-â`Ìʁ  @E!š¥ò cP$B0f¸( yÈéoo‡xð+ ! 3ÀÅð•XÄEW¹ and the recieved on s3 is : RIFF\¯ WEBPVP8LP¯ /óÁb �@lÛH’4ö4z{ mþÏw{Dôò_û+€þ$Ù&}Cé]טó8®ö# Ü­Õ±$ùvÍ^)½ íh³'Û$P{ÁÝèlóhIê÷Y’5––VÍWÈó1àÔ‚5ï£MÒVy¤QG¡@ å ˜ä »—>©"´’ì�¶½R ­gB,7{**Är„wŠ¢Ðã&[N€¢IåUý –ãxAEÁ30Ú>*‰Šj 2yBRZ5 —y=’F¾KBøÑßOE²í*ý?@þÕ á.YæœáÅ’I’$I1œÀpœÄ{9õÉèsÿÿ]û: NkÛ–š-é¿$ =Iæ«£�ïêÿÀŸBô ÑIˆ*ï B€ y�øߘ{·œH�eS°¹-â`ÌÊ�  @E!š¥ò cP$B0f¸( yÈéoo‡xð+ ! 3ÀÅð•XÄEW¹� in hex mode : original : 524946465cc2af0120574542505650384c50c2af01202fc3b3c3816220c28d406cc39b48e2809934c3b6347a7b206dc3be01c38f777b1144c3b47f02c3b25fc3bb2be282acc3be24c399267d43c3a95dc397cb9cc3b338c2aec3b623092ac39cc2adc395c2b10624c3b976c38d5e29c2bd0ac3ad68c2b327c39b24507bc381c39dc3a81a6cc3b3684902c3aac3b759e280993560e28093e2809356c38d57c388c3b331c3a0c394e2809a35c3af18c2a34d1ac3925679c2a45147c2a140c2a0c3a5090acb9cc3a41320c2bbe280943ec2a92210c2b4e28099c3acc281c2b6c2bd520109c2ad67422c377b2a2ac3847201e2809e1b77c5a0c2a2c390c3a3260f5b4ee282acc2a249c3a5551514c3bd20e28093c3a3784145c3813330c39a3e2ae280b0c5a06a20327942525a3509e28094793de28099461ec2be4b42c3b8c391c39f4f1c45c2b2c3ad2ac3bd3f084002c3bec39520c3a12e59c3a6c593c3a1c3850201e280991449e28099244931c593c38070c593c3847b39c3b5c389c3a873c3bfc3bf5dc3bb3a0b4e6bc39be28093c5a12dc3a9c2bf240a603d49c3a6c2abc2a3c29019c3afc3aac3bf04c380c5b81442c3b40220c39149cb862ac3af1818052042e282ac100979c281c3b802c39fcb9c7bc382c2b7c593487fc28165185316c2b0c2b92dc3a260c38cc38ac2811020022040104521c5a1c2a510c3b22063502412423066c2b8280a79c388c3a96f6fe280a178c3b02b012021042033c380c385c3b01fe280a258c3844557c2b9c290 on s3 : 524946465cc2af0120574542505650384c50c2af01202fc3b3c3816220efbfbd406cc39b48e2809934c3b6347a7b206dc3be01c38f777b1144c3b47f02c3b25fc3bb2be282acc3be24c399267d43c3a95dc397cb9cc3b338c2aec3b623092ac39cc2adc395c2b10624c3b976c38d5e29c2bd0ac3ad68c2b327c39b24507bc381c39dc3a81a6cc3b3684902c3aac3b759e280993560e28093e2809356c38d57c388c3b331c3a0c394e2809a35c3af18c2a34d1ac3925679c2a45147c2a140c2a0c3a5090acb9cc3a41320c2bbe280943ec2a92210c2b4e28099c3acefbfbdc2b6c2bd520109c2ad67422c377b2a2ac3847201e2809e1b77c5a0c2a2c390c3a3260f5b4ee282acc2a249c3a5551514c3bd20e28093c3a3784145c3813330c39a3e2ae280b0c5a06a20327942525a3509e28094793de28099461ec2be4b42c3b8c391c39f4f1c45c2b2c3ad2ac3bd3f084002c3bec39520c3a12e59c3a6c593c3a1c3850201e280991449e28099244931c593c38070c593c3847b39c3b5c389c3a873c3bfc3bf5dc3bb3a0b4e6bc39be28093c5a12dc3a9c2bf240a603d49c3a6c2abc2a3efbfbd19c3afc3aac3bf04c380c5b81442c3b40220c39149cb862ac3af1818052042e282ac100979efbfbdc3b802c39fcb9c7bc382c2b7c593487fefbfbd65185316c2b0c2b92dc3a260c38cc38aefbfbd1020022040104521c5a1c2a510c3b22063502412423066c2b8280a79c388c3a96f6fe280a178c3b02b012021042033c380c385c3b01fe280a258c3844557c2b9efbfbd

how I can solve?