解決docker容器啟動的chrome 瀏覽器首選或默認(rèn)語言修改
要在 Docker 容器中的 Chrome 瀏覽器中設(shè)置中文語言,你可以通過在容器啟動時設(shè)置瀏覽器的啟動參數(shù)來實(shí)現(xiàn)。以下是一個示例的 Docker 命令:
docker run -d -p 4444:4444 \
-e "LANGUAGE=zh_CN:zh" \
selenium/standalone-chrome:latest
在這個示例中,我們使用了 selenium/standalone-chrome 鏡像作為基礎(chǔ)鏡像,并通過設(shè)置環(huán)境變量 -e 來設(shè)置中文語言。LANGUAGE 環(huán)境變量的值都被設(shè)置為 zh_CN.UTF-8,從而將容器中的首選語言設(shè)置為中文。(如需修改為英文,對應(yīng)替換為en_US)
瀏覽器啟動后查看首選語言
LANG LANGUAGE LC_ALL環(huán)境變量區(qū)別
- LANG(或 LC_*):LANG 是最基本的本地化環(huán)境變量之一。它用于設(shè)置默認(rèn)的本地化參數(shù),包括字符編碼、日期時間格式、貨幣符號等。如果沒有顯式設(shè)置其他本地化環(huán)境變量,程序通常會使用 LANG 的值作為默認(rèn)設(shè)置。例如,LANG=en_US.UTF-8 將設(shè)置本地化為美國英語,使用 UTF-8 編碼。
- LANGUAGE:LANGUAGE 是一個特定于某些系統(tǒng)的環(huán)境變量,在某些Unix系統(tǒng)中用于設(shè)置用戶首選語言。它通常是一個以冒號分隔的語言列表,按優(yōu)先級排列。例如,LANGUAGE=en_US:fr_FR 表示首選英語,如果不可用,則使用法語。
- LC_ALL:LC_ALL 是一個更高級別的環(huán)境變量,用于覆蓋所有其他本地化環(huán)境變量的值。當(dāng)設(shè)置 LC_ALL 時,它會覆蓋 LANG 和其他 LC_* 變量的設(shè)置,以確保程序在特定的地區(qū)或語言下以一致的方式運(yùn)行。如果設(shè)置了 LC_ALL,則忽略其他本地化環(huán)境變量的值。這使得 LC_ALL 具有最高的優(yōu)先級。
總結(jié):
- LANG 是最基本的本地化環(huán)境變量,用于設(shè)置默認(rèn)的本地化參數(shù)。
- LANGUAGE 是某些系統(tǒng)特定的環(huán)境變量,用于設(shè)置用戶首選語言。
- LC_ALL 是更高級別的環(huán)境變量,用于覆蓋所有其他本地化環(huán)境變量的值,確保程序以一致的方式運(yùn)行。
在設(shè)置本地化環(huán)境變量時,建議優(yōu)先使用 LANG,除非你有特定的需求需要使用 LANGUAGE 或 LC_ALL。
截止到該步驟,問題已解決。如還未解決,可繼續(xù)閱讀。后續(xù)內(nèi)容為相關(guān)背景知識補(bǔ)充
進(jìn)入容器查看查看字符集
docker exec -it <container_id> /bin/bash
locale
locale -a
locale
- locale 命令用于顯示當(dāng)前系統(tǒng)的語言環(huán)境設(shè)置。
- 當(dāng)你在終端中運(yùn)行 locale 命令時,它將輸出一系列與語言、字符編碼、日期和時間格式等相關(guān)的環(huán)境變量的值。
- 例如,LC_CTYPE 表示字符分類和轉(zhuǎn)換規(guī)則,LC_TIME 表示日期和時間格式,LANG 表示默認(rèn)語言環(huán)境等。
locale -a
- locale -a 命令用于列出系統(tǒng)上可用的所有語言環(huán)境。
- 運(yùn)行 locale -a 命令將輸出已安裝在系統(tǒng)上的語言環(huán)境的列表。
- 每個語言環(huán)境由一個標(biāo)識符表示,通常是由語言和地區(qū)/國家的縮寫組成的組合,例如 en_US 表示英語(美國),zh_CN 表示中文(中國)等。
- 這些語言環(huán)境可以用于設(shè)置系統(tǒng)的默認(rèn)語言、字符編碼以及日期和時間格式。
為何locale -a 未查看到支持中文編碼的語言環(huán)境,瀏覽器還能正確加載出中文頁面?
- 語言環(huán)境未安裝:你的操作系統(tǒng)可能沒有安裝支持中文編碼的語言環(huán)境。locale -a 命令只會列出已經(jīng)在系統(tǒng)中安裝的語言環(huán)境。
- 非 POSIX 語言環(huán)境:locale -a 命令只顯示 POSIX 兼容的語言環(huán)境。如果你的系統(tǒng)上存在非 POSIX 的中文語言環(huán)境,它們可能不會顯示在 locale -a 的輸出中。
- 瀏覽器獨(dú)立的語言設(shè)置:瀏覽器通常具有自己的語言設(shè)置和字符編碼支持機(jī)制,不完全依賴于操作系統(tǒng)的語言環(huán)境設(shè)置。瀏覽器可以根據(jù)網(wǎng)頁的語言設(shè)置和字符編碼,自動加載適當(dāng)?shù)淖煮w和字符集,以確保正確顯示中文頁面。
由于瀏覽器具有獨(dú)立的語言支持機(jī)制,即使操作系統(tǒng)的語言環(huán)境不支持中文編碼,瀏覽器仍然可以正確加載和顯示中文頁面。瀏覽器會根據(jù)網(wǎng)頁的語言設(shè)置以及瀏覽器自身的字符編碼支持,選擇適合的字體和字符集來渲染中文內(nèi)容。文章來源:http://www.zghlxwxcb.cn/news/detail-766189.html
因此,即使 locale 命令未顯示支持中文編碼的語言環(huán)境,瀏覽器仍然可以正常顯示中文頁面。這是因?yàn)闉g覽器具有自己的語言環(huán)境和字符編碼處理能力。文章來源地址http://www.zghlxwxcb.cn/news/detail-766189.html
常見的編碼格式
- C.UTF-8
C 是一種語言環(huán)境設(shè)置,也稱為 C 語言環(huán)境或默認(rèn)的 C 語言環(huán)境。
UTF-8 是一種字符編碼,用于支持廣泛的字符集。
C.UTF-8 設(shè)置將使用 C 語言環(huán)境和 UTF-8 字符編碼。 - en_US.UTF-8
en_US 表示英語(美國)的語言環(huán)境。
UTF-8 是一種字符編碼,用于支持廣泛的字符集。
en_US.UTF-8 設(shè)置將使用英語(美國)語言環(huán)境和 UTF-8 字符編碼。 - zh_CN.UTF-8
zh_CN 表示中文(中國)的語言環(huán)境。
UTF-8 是一種字符編碼,用于支持廣泛的字符集。
zh_CN.UTF-8 設(shè)置將使用中文(中國)語言環(huán)境和 UTF-8 字符編碼。 - POSIX
POSIX 字符編碼是一種基本的字符編碼方案,通常用于 POSIX 兼容的操作系統(tǒng)和環(huán)境中。
它使用 ASCII 字符集的子集,該子集包含了常見的美國英語字符和控制字符,總共有 128 個字符。
POSIX 字符編碼不支持國際化字符集和多字節(jié)字符,因此它的功能相對有限
POSIX 相關(guān)說明
- POSIX 兼容的語言環(huán)境不包括特定的地域設(shè)置,如 “zh_CN.UTF-8”。
- POSIX 是一組操作系統(tǒng)接口標(biāo)準(zhǔn),旨在提供跨平臺的應(yīng)用程序兼容性,但它并不關(guān)注具體的語言或地域設(shè)置。
常見的 POSIX 兼容的語言環(huán)境
- C 或 POSIX:這是默認(rèn)的 POSIX 兼容語言環(huán)境,通常用于提供最小限度的字符集支持和字符編碼功能。
- en_US 或 en_US.UTF-8:美國英語(英語-美國)的 POSIX 兼容語言環(huán)境,使用 UTF-8 字符編碼。
- C.UTF-8:基于 C 語言環(huán)境的 UTF-8 字符編碼的 POSIX 兼容語言環(huán)境。
- POSIX.UTF-8:基于 POSIX 標(biāo)準(zhǔn)的 UTF-8 字符編碼的 POSIX 兼容語言環(huán)境。
在 GitLab CI/CD 中,可以使用 variables 關(guān)鍵字來配置對應(yīng)環(huán)境變量,修改.gitlab-ci.yml 文件
services:
alias: selenium-chrome
variables:
LANGUAGE: "zh_CN:zh"
到了這里,關(guān)于【docker 容器內(nèi)設(shè)置谷歌瀏覽器首選或默認(rèn)語言】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!