21.11. grafset 사용


Charset 옵션을 사용하면 소비자 및 생산자 끝점 모두에서 파일의 인코딩을 구성할 수 있습니다. 예를 들어 utf-8 파일을 읽고 iso-8859-1로 파일을 변환하려는 경우 다음을 수행할 수 있습니다.

from("file:inbox?charset=utf-8")
  .to("file:outbox?charset=iso-8859-1")
Copy to Clipboard Toggle word wrap

경로에서 convertBodyTo 를 사용할 수도 있습니다. 아래 예제에서는 utf-8 형식으로 파일을 계속 입력했지만 파일 내용을 iso-8859-1 형식의 바이트 배열로 변환하려고 합니다. 그런 다음 빈에서 데이터를 처리하도록 합니다. 현재Charset을 사용하여 받은 편지함 폴더에 콘텐츠를 쓰기 전에 다음을 수행합니다.

from("file:inbox?charset=utf-8")
  .convertBodyTo(byte[].class, "iso-8859-1")
  .to("bean:myBean")
  .to("file:outbox");
Copy to Clipboard Toggle word wrap

소비자 엔드포인트에서Charset을 생략하면 Camel은 파일의 Charset을 알 수 없으며 기본적으로 "UTF-8"을 사용합니다. 그러나 org.apache.camel.default.charset 키를 사용하여 다른 기본 인코딩을 재정의하고 사용하도록 JVM 시스템 속성을 구성할 수 있습니다.

아래 예제에서는 파일이 UTF-8 인코딩에 없는 경우 문제가 될 수 있습니다. 이 인코딩은 파일을 읽기 위한 기본 인코딩입니다.
이 예제에서는 파일을 작성할 때 콘텐츠가 이미 바이트 배열로 변환되어 있으므로 추가 인코딩 없이 콘텐츠를 그대로 그대로 씁니다.

from("file:inbox")
  .convertBodyTo(byte[].class, "iso-8859-1")
  .to("bean:myBean")
  .to("file:outbox");
Copy to Clipboard Toggle word wrap

또한 Exchange.CHARSET_NAME 키로 교환에 속성을 설정하여 파일을 작성할 때 인코딩 동적 인코딩을 재정의하고 제어할 수도 있습니다. 예를 들어 아래 경로에서는 메시지 헤더의 값으로 속성을 설정합니다.

from("file:inbox")
  .convertBodyTo(byte[].class, "iso-8859-1")
  .to("bean:myBean")
  .setProperty(Exchange.CHARSET_NAME, header("someCharsetHeader"))
  .to("file:outbox");
Copy to Clipboard Toggle word wrap

동일한 인코딩으로 파일을 선택하고 특정 인코딩으로 파일을 쓰고 특정 인코딩으로 파일을 쓰고자 하는 경우 끝점에서 줄임표 옵션을 사용하는 것이 좋습니다.

끝점에her set 옵션을 명시적으로 구성한 경우에는 Exchange.CHARSET_NAME 속성에 관계없이 해당 구성이 사용됩니다.

몇 가지 문제가 있는 경우 org.apache.camel.component.file 에서 DEBUG 로깅을 활성화할 수 있으며, 특정charset을 사용하여 파일을 읽고 쓸 때 Camel 로그를 사용할 수 있습니다.
예를 들어 아래 경로는 다음을 기록합니다.

from("file:inbox?charset=utf-8")
  .to("file:outbox?charset=iso-8859-1")
Copy to Clipboard Toggle word wrap

및 로그:

DEBUG GenericFileConverter           - Read file /Users/davsclaus/workspace/camel/camel-core/target/charset/input/input.txt with charset utf-8
DEBUG FileOperations                 - Using Reader to write file: target/charset/output.txt with charset: iso-8859-1
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat