簡體   English   中英

Apache Camel:帶重音字符的文件處理

[英]Apache Camel: file processing with accented characters

我們正在嘗試解析來自 AWS S3 (sdk2) 的文本文件,其中包含一些重音字符,例如 î。 我們正在使用駱駝綁定格式@FixedLengthRecord 將文件行映射到我們的 DTO,但是這些重音字符被映射為問號?

我們還不確定源文件編碼,但它在 Notepad++ 中顯示為 ANSI,並且還在輸入文件中正確顯示字符。

到目前為止嘗試了多種方法,例如用不同的 US-ASCII、cp1252 覆蓋默認字符集

System.setProperty("org.apache.camel.default.charset", "cp1252");

在我們的路由定義中與 .convertBodyTo(String.class, "UTF-8") 一起使用,但似乎都不起作用。

嘗試閱讀駱駝文檔https://camel.apache.org/components/latest/file-component.html和關於 stackoverflow 的類似問題,但還沒有找到任何匹配的解決方案,任何其他指針都會受到高度贊賞。

終於得到了駱駝 AWS2S3Endpoint 讀取 S3 對象的方式的線索。 它默認為 UTF-8

Reader reader = new BufferedReader(new InputStreamReader(s3Object, Charset.forName(StandardCharsets.UTF_8.name())));

正如駱駝郵件列表中提到的,這在最新的 3.6.0 快照版本中得到了修復。 我們可以在駱駝路線中使用快照版本和 convertBodyTo(String.class, "ISO-8859-1") 成功測試它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM