포스트

Vercel - Jekyll 인코딩 문제

그동안 Vercel에서 Node 18.x를 사용해 블로그 포스팅을 배포했지만, 오늘 새 포스팅을 배포하려고 하니 Node 18.x 지원 종료로 배포가 실패했습니다.

그래서 Node 22.x로 업그레이드하고 다시 배포를 시도했지만, 이번에는 인코딩 문제로 빌드가 실패했습니다. 🤨

1
encode': "\xED" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)

이전까지는 인코딩 관련 문제가 없었는데, Node 업그레이드 이후 Ruby/Jekyll 환경에서 ASCII-8BIT → UTF-8 변환 실패 문제가 발생한 것입니다.

이번 포스팅에서는 이 문제를 해결한 과정을 기록합니다.


1. _config.yml 수정

Jekyll이 파일을 UTF-8로 처리하도록 _config.yml에 아래 한 줄을 추가합니다.

1
encoding: "utf-8"

2. Vercel Build Command 수정

Vercel 환경에서는 Locale을 강제로 변경할 수 없기 때문에, Ruby 자체 옵션으로 UTF-8을 강제하도록 설정합니다.

1
ruby -E UTF-8:UTF-8 -S bundle exec jekyll build
  • -E UTF-8:UTF-8 : Ruby에서 외부 입력과 내부 문자열 처리 모두 UTF-8로 설정
  • -S bundle exec jekyll build : Bundler를 통해 Jekyll 빌드 실행

image


이제 다시 배포하면 에러 없이 정상적으로 배포가 완료됩니다.

image

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.