Node.js(Nest)部署到node-alpine容器后西里尔字符显示乱码
Docker容器中Node.js(Puppeteer/Chrome)西里尔字符乱码问题
我开发了一个基于Puppeteer和Chrome的网页爬虫,用于抓取俄文网站信息并展示给用户。该应用在Fedora Linux和Windows系统中运行正常,但部署到node-latest或node-alpine镜像后,俄文字符显示为乱码(如Íîâîñòè、Îáó÷àþùåå âèäåî、Ýëåêòðîííàÿ ìóçûêà)。我已尝试安装西里尔字体并设置系统LANG、LANGUAGE、LC_ALL变量为ru_RU.UTF-8,但问题仍未解决。
以下是我的Dockerfile内容:
FROM node:20-alpine ENV MUSL_LOCALE_DEPS cmake make musl-dev gcc gettext-dev libintl ENV MUSL_LOCPATH /usr/share/i18n/locales/musl RUN apk add font-vollkorn font-misc-cyrillic font-mutt-misc font-screen-cyrillic font-winitzki-cyrillic font-cronyx-cyrillic RUN apk add --no-cache \ $MUSL_LOCALE_DEPS \ && wget https://gitlab.com/rilian-la-te/musl-locales/-/archive/master/musl-locales-master.zip \ && unzip musl-locales-master.zip \ && cd musl-locales-master \ && cmake -DLOCALE_PROFILE=OFF -D CMAKE_INSTALL_PREFIX:PATH=/usr . && make && make install \ && cd .. && rm -r musl-locales-master ENV LANG ru_RU.UTF-8 ENV LANGUAGE ru_RU.UTF-8 ENV LC_ALL ru_RU.UTF-8 RUN apk add --no-cache \ chromium \ nss \ freetype \ harfbuzz \ ca-certificates \ ttf-freefont ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser WORKDIR /app COPY . /app RUN cd /app RUN npm i RUN npm i -g @nestjs/cli CMD npm run start
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

