24.11. grafset 사용


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

from("file:inbox?charset=utf-8")
  .to("file:outbox?charset=iso-8859-1")

경로에서 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");

소비자 엔드포인트에서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");

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

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

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

끝점에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")

및 로그:

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
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동