Làm cách nào để sửa cảnh báo cài đặt ngôn ngữ từ Perl?


596

Khi tôi chạy perl, tôi nhận được cảnh báo:

perl: cảnh báo: Cài đặt ngôn ngữ không thành công.
perl: cảnh báo: Vui lòng kiểm tra xem cài đặt ngôn ngữ của bạn:
    NGÔN NGỮ = (bỏ đặt),
    LC_ALL = (bỏ đặt),
    LANG = "en_US.UTF-8"
được hỗ trợ và cài đặt trên hệ thống của bạn.
perl: cảnh báo: Rơi trở lại miền địa phương tiêu chuẩn ("C").

Làm thế nào để tôi sửa nó?


Điều gì đã xảy ra khi bạn kiểm tra cài đặt ngôn ngữ như thông báo lỗi cho bạn biết?
brian d foy

3
thay vì cài đặt miền địa phương, bạn cũng có thể thay đổi miền địa phương. Trên hộp Ubuntu của tôi, điều này được thực hiện cho một người dùng bằng cách chỉnh sửa~/.pam_environment
Janus Troelsen

Trên ODROID-C1 chạy Ubuntu của tôi, vấn đề thực sự là tệp ~ / .pam_en môi trường. Một số biến là es_US.UTF-8 thay vì en_US.UTF-8. Cảm ơn bạn.
F1vefour 18/2/2015

Tôi đã nhận được điều này trên Cygwin \ Babun. Chỉ một cài đặt lại của perl đã sửa nó.
Lucas Soares

Câu trả lời:


449

Hệ điều hành của bạn không biết về en_US.UTF-8 .

Bạn đã không đề cập đến một nền tảng cụ thể, nhưng tôi có thể tái tạo vấn đề của bạn:

% uname -a
OSF1 hunter2 V5.1 2650 alpha
% perl -e thoát
perl: cảnh báo: Cài đặt ngôn ngữ không thành công.
perl: cảnh báo: Vui lòng kiểm tra xem cài đặt ngôn ngữ của bạn:
    LC_ALL = (bỏ đặt),
    LANG = "en_US.UTF-8"
    được hỗ trợ và cài đặt trên hệ thống của bạn.
perl: cảnh báo: Rơi trở lại miền địa phương tiêu chuẩn ("C").

Tôi đoán là bạn đã sử dụng ssh để kết nối với máy chủ cũ này từ một máy tính để bàn mới hơn. Nó là phổ biến /etc/ssh/sshd_configđể chứa

AcceptEnv LANG LC_*

cho phép khách hàng tuyên truyền các giá trị của các biến môi trường đó thành các phiên mới.

Cảnh báo cung cấp cho bạn một gợi ý về cách squelch nó nếu bạn không yêu cầu địa điểm đầy đủ:

% env LANG = C perl -e thoát
%

hoặc với bash:

$ LANG = C perl -e thoát
$ 

Để sửa lỗi vĩnh viễn, chọn một trong

  1. Trên máy chủ cũ hơn, đặt LANGbiến môi trường trong tệp khởi tạo shell của bạn.
  2. Sửa đổi môi trường của bạn ở phía máy khách, ví dụ , thay vì ssh hunter2sử dụng lệnh LANG=C ssh hunter2.
  3. Nếu bạn có quyền quản trị, hãy ngăn ssh gửi các biến môi trường bằng cách nhận xét SendEnv LANG LC_*dòng trong tệp cục bộ /etc/ssh/ssh_config . (Nhờ câu trả lời này . Xem Bug 1285 để biết thêm về OpenSSH.)

22
Cảm ơn! Tôi đã có thông báo lỗi này khi kết nối với git đến máy chủ của tôi. Sau khi thêm de_CH.UTF-8 (không được hỗ trợ ở đó nhưng được sử dụng cục bộ) với dpkg-reconfigure localesthông báo sẽ biến mất.
Simon A. Eugster

82
Tôi đã gặp vấn đề này từ lâu, ... loại bỏ "AcceptEnv LANG LC_ *" khỏi sshd_config cuối cùng đã giải quyết nó. Cảm ơn các gợi ý!
madc

2
@Greg Bacon, chẳng phải cũng có trường hợp bạn muốn đặt hệ thống biến môi trường rộng, ví dụ bằng cách tạo tệp / etc / môi trường? help.ubuntu.com/community/...
fraxture

25
@HermannIngjaldsson, ít nhất là trên Ubuntu (12.10), không cần phải khởi động lại máy chủ (sau khi xóa "AcceptEnv LANG LC_ *"). Tôi vừa tải lại ssh config : service ssh reload, mất một phần giây và thậm chí không khiến phiên ssh hiện tại chấm dứt.
noamtm

3
chắp thêm 'export LC_ALL = C' rồi 'source ~ / .bashrc' tại hệ thống máy khách để giải quyết vấn đề.
Hiệu

476

Dưới đây là cách giải quyết trên Mac OS Lion (10.7) hoặc Cygwin (Windows 10):

Thêm các dòng sau vào bashrc hoặc bash_profile của bạn trên máy chủ:

# Setting for the new UTF-8 terminal support in Lion
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

Nếu bạn đang sử dụng zsh, hãy chỉnh sửa zshrc:

# Setting for the new UTF-8 terminal support in Lion
LC_CTYPE=en_US.UTF-8
LC_ALL=en_US.UTF-8

6
Cảm ơn, tôi đã tìm kiếm một giải pháp cho vấn đề này trong một thời gian dài và tôi luôn nghĩ rằng đó là một vấn đề trong cấu hình máy chủ Ubuntu của tôi và dường như không có giải pháp nào giúp được (tất cả những thứ đó đã được cấu hình lại (
Teemu Kurppa

5
LC_ALLghi đè tất cả các biến khác, tôi muốn đặt LANG=de_AT.UTF-8và các biến riêng lẻ như thế LC_MESSAGES=en_US.UTF-8. Nếu một biến không được đặt, nó sẽ rơi trở lại LANG. Bạn cũng có thể ví dụ. unset LC_CTYPEđể buộc nó rơi trở lại LANG.
David

4
Đặt các dòng đó trong .bashrc không hoạt động, nhưng bash_profile đã giải quyết nó! Tôi đã phải tạo tập tin.
Hermann Ingjaldsson

5
Đặt những dòng này đã ~/.bashrcgiải quyết nó cho tôi ... sau đó phải tải lại bằng cách sử dụng source ~/.bashrc... Thnks <3
Enissay

5
Cảm ơn, điều này đã hoạt động tốt trên ZSH và plugin oh-my-zsh trong Mac OS X El Capitan, ở cuối ~ / .zshrc: LC_CTYPE = en_US.UTF-8 LC_ALL = en_US.UTF-8
Valerio Schiavoni

207

Nếu bạn đang tạo một rootfs bằng debootstrap, bạn sẽ cần tạo các locus. Bạn có thể làm điều này bằng cách chạy:

# (optional) enable missing locales
sudo nano /etc/locale.gen

# then regenerate
sudo locale-gen

Mẹo này đến từ, https://help.ubfox.com/community/Xen


28
Đây là sửa chữa thực sự cho tôi.
Afriza N. Arief

6
locale-gen không nhận bất kỳ đối số nào (ít nhất là trong ổn định Debian). Thay vào đó, hãy chỉnh sửa /etc/locale.gen để bỏ ghi chú các địa điểm bạn muốn, sau đó chạy sudo locale-gen
Sam Watkins

2
cố định vàoUbuntu Server
Paschalis

5
Trên Debian bạn có thể cần phải làm $ echo en_US UTF-8 >> /etc/locale.gentrước.
akhmed

1
Trên Gentoo (ít nhất), locale-genkhông lấy đối số. Nó đọc từ /etc/locale.gen.
Pistos

142

Sử dụng:

export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8

Nó hoạt động cho Debian . Tôi không biết tại sao - nhưng locale-gen không có kết quả.

Quan trọng! Đó là một giải pháp tạm thời. Nó phải được chạy cho mỗi phiên.


13
Cái này làm việc cho tôi Tôi chỉ cần đặt nó vào .bashrctập tin của tôi .
Anirudh Ramanathan

2
Làm việc cho tôi quá. Tôi chỉ phải đặt hai thiết lập (LANGUAGE và LC_ALL) mà xuất hiện unset trong những lời cảnh báo Perl
laurent

2
Trên Debian, local-genchỉ xử lý các ngôn ngữ không bị thiếu /etc/local.gen. Bạn có thể cần phải làm echo en_US UTF-8 >> /etc/locale.genđầu tiên.
akhmed

cái này hiệu quả với tôi trên Freaya OS OS (dựa trên Ubuntu)
valkirilov

1
LC_ C TYPE có thể là?
mixel

139

Điều này thường có nghĩa là bạn chưa thiết lập đúng vị trí trên hộp Linux của mình.

Trên Debian hoặc Ubuntu, điều đó có nghĩa là bạn cần phải làm

$ sudo locale-gen
$ sudo dpkg-cấu hình lại các ngôn ngữ

Xem thêm người đàn ông địa phương-gen .


30
không khắc phục sự cố tại đây
Somatik

6
dpkg-cấu hình lại các ngôn ngữ - đã khắc phục sự cố cho tôi, debian 7.1
newUserNameHãy

4
Các địa điểm dpkg-cấu hình lại tự thất bại với cùng một thông báo lỗi cục bộ perl mà người ta đang cố gắng khắc phục ở nơi đầu tiên !!!!
matteo

10
Điều này làm việc với tôi trong Ubuntu 14.04, mặc dù trước tiên tôi phải thêm ngôn ngữ bị thiếu vớisudo locale-gen es_UY.UTF-8
alf

2
@matteo Chỉ lần đầu tiên, trước khi nó sửa lỗi. Hãy thử lại, và nó sẽ được sửa chữa.
Zero3

92

Chỉ dành cho người dùng macOS & Mac OS X

Tôi đã nhận được cảnh báo tương tự trong khi sử dụng Git

Để giải quyết cảnh báo này Bỏ chọn các Set locale environment variable on startuptùy chọn và khởi động lại thiết bị đầu cuối của bạn. Dưới đây ảnh chụp màn hình đại diện cho các thiết lập thiết bị đầu cuối của tôi.

nhập mô tả hình ảnh ở đây


3
Wow, thật đơn giản và khắc phục vấn đề của tôi! Cảm ơn!
Michal

3
Tôi đã thử tất cả những người khác nhưng điều này đã làm điều đó cho tôi. Tôi sử dụng iTerm và nó có cùng tùy chọn mã hóa ký tự.
Michael Morrison

2
Thật không may, điều này đã phá vỡ ZSH (tab ngừng hoạt động)
Christian

1
Đây hoàn toàn là mẹo cho Mac OS. Nhân tiện, điều này bắt đầu xảy ra với tôi ngay sau khi nâng cấp lên macOS Sierra. Và điều này đã khắc phục vấn đề này cho tôi.
Paulo Malvar

1
Điều này đã khắc phục vấn đề của tôi. nó bắt đầu xảy ra với tôi, sau khi cập nhật lên Mac OS X High Sierra từ Sierra.
Lucian Irimie

36

Đây là bản sửa lỗi đơn giản trong Ubuntu. Bạn phải tạo Địa điểm từ đầu, chạy các lệnh sau từ dòng lệnh:

sudo locale-gen en_US en_US.UTF-8
sudo dpkg-reconfigure locales

Điều này sẽ tạo ra các địa điểm và sau đó cấu hình lại chúng.


Điều này làm việc tốt với tôi ngay cả khi sử dụng pt_BR pt_BR.UTF-8- Cảm ơn.
Marcos Freitas

29

Thêm phần sau để /etc/environmentkhắc phục sự cố cho tôi trên Debian và Ubuntu (tất nhiên, sửa đổi để phù hợp với ngôn ngữ bạn muốn sử dụng):

LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8

7
.. Tôi nhận được một cảnh báo nói rằng cài đặt ngôn ngữ /etc/environmentkhông được chấp nhận và thay vào đó nên được đặt trong /etc/default/locale. Cả hai dường như làm việc cho bây giờ.
joscarsson

nên làLC_CTYPE
aexl

25

Tôi hiện đang sử dụng này:

$ cat /etc/environment
...
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

Sau đó đăng xuất khỏi phiên SSH và đăng nhập lại.

Câu trả lời cũ:

Chỉ điều này đã giúp tôi:

$ locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=

$ sudo su

# export LANGUAGE=en_US.UTF-8
# export LANG=en_US.UTF-8
# export LC_ALL=en_US.UTF-8

# locale-gen en_US.UTF-8
Generating locales...
  en_US.UTF-8... up-to-date
Generation complete.

# dpkg-reconfigure locales
Generating locales...
  en_AG.UTF-8... done
  en_AU.UTF-8... done
  en_BW.UTF-8... done
  en_CA.UTF-8... done
  en_DK.UTF-8... done
  en_GB.UTF-8... done
  en_HK.UTF-8... done
  en_IE.UTF-8... done
  en_IN.UTF-8... done
  en_NG.UTF-8... done
  en_NZ.UTF-8... done
  en_PH.UTF-8... done
  en_SG.UTF-8... done
  en_US.UTF-8... up-to-date
  en_ZA.UTF-8... done
  en_ZM.UTF-8... done
  en_ZW.UTF-8... done
Generation complete.

# exit

$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

Điều này làm việc tốt với tôi trên Ubuntu 15.04, cảm ơn rất nhiều.
Goke Obasa

22

trên Debian sau khi tìm kiếm nhiều, điều này đã tạo ra mánh khóe.

Đầu tiên:

sudo apt-get purge locales

sau đó:

sudo aptitude install locales

và nổi tiếng:

sudo dpkg-reconfigure locales

Điều này giúp hệ thống các địa phương, sau đó cài đặt lại các địa điểm và hạ cấp libc6 từ 2,19 xuống 2,13, đây là vấn đề. Sau đó cấu hình lại địa phương.


4
dpkg-reconfigure localeslà tất cả những gì cần thiết sudonếu bạn là một anh chàng sudo, hoặc làm điều đó như root. Sau đó chọn miền địa phương của bạn theo những gì bạn có trong môi trường vỏ của bạn.
mknaf

6
dpkg-cấu hình lại các địa phương NÊN là tất cả những gì cần thiết. Sau khi bạn đã thử 100 lần và tìm kiếm trên internet và đó là tất cả những gì bạn đã thấy và vấn đề vẫn không giải quyết được, hãy thử cách trên. Sau đó quay lại và upvote này. :)
tkjef

1
cuối cùng là một câu trả lời không hack cho vấn đề này, chắc chắn nên được chấp nhận!
php_nub_qq

17

Đây là một câu trả lời nhanh chóng. Chúng tôi sẽ đặt các vị trí không được đặt sau khi khởi động lại. Đầu tiên mở tệp bash và chỉnh sửa nó:

nano .bashrc

thêm các dòng này vào tập tin:

export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"
export LANGUAGE="en_US.UTF-8"

kích hoạt thay đổi bằng cách tải lại bash:

source ~/.bashrc

kết quả kiểm tra :

locale

Người duy nhất làm việc cho tôi, máy chủ Raspbian và ubfox 16.04 :)
Liso

13

Đối với Ubuntu, hãy sử dụng

#export LANGUAGE=en_US.UTF-8
#export LC_ALL=en_US.UTF-8
#export LANG=en_US.UTF-8
#export LC_TYPE=en_US.UTF-8

Đã làm cho tôi.


Nó cũng hoạt động với tôi, bằng cách xóa tất cả nội dung trong tệp /etc/default/localevà chỉ đặt định nghĩa của các vars (xóa xuất từ) và khởi động lại máy chủ
Edenshaw

12

Nếu bạn sử dụng Mac OS X v10.10 (Yosemite) trở lên để kết nối trong máy chủ Linux của mình, bạn có thể thử các bước sau.

  1. Giữ tập tin của bạn / etc / ssh / sshd-config

  2. Đặt trên ~ / .bash_profile của bạn

    export LANG="en_US"
    export LC_ALL=$LANG.UTF-8
  3. Chạy

    dpkg-reconfigure locales

    Và chọn "en_US.UTF-8"


10
sudo nano /etc/locale.gen

Bỏ ghi chú các địa điểm bạn muốn sử dụng (ví dụ: en_US.UTF-8 UTF-8 ):

Sau đó chạy:

sudo /usr/sbin/locale-gen

Nguồn: http://people.debian.org/~schultmc/locales.html


Công ty tôi làm việc ở Mỹ có một máy chủ git có khách hàng quốc tế. Đám đông GB phàn nàn rằng bản sao git của họ trên ssh sẽ có vấn đề do sự khác biệt về địa phương. Điều này áp dụng trên máy chủ đã khắc phục vấn đề này cho họ.
Therealstubot

10

Bạn cần định cấu hình ngôn ngữ thích hợp trong /etc/default/locale, đăng xuất, đăng nhập và sau đó chạy các lệnh thông thường

root@host:~# echo -e 'LANG=en_US.UTF-8\nLC_ALL=en_US.UTF-8' > /etc/default/locale
root@host:~# exit
local-user@local:~$ ssh root@host
root@host:~# locale-gen en_US.UTF-8
root@host:~# dpkg-reconfigure locales

4
các bước này làm việc cho tôi (máy chủ Ubuntu 14.04). điểm chính là đăng xuất và đăng nhập lại.
do

9
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory

Giải pháp:

Hãy thử điều này ( uk_UA.UTF-8 là ngôn ngữ hiện tại của tôi. Viết miền địa phương của bạn, ví dụ en_US.UTF-8 !)

sudo locale-gen uk_UA.UTF-8

và điều này.

sudo dpkg-reconfigure locales

Cảm ơn bạn điều này đã giải quyết vấn đề của tôi, sau khi làm điều này và cài đặt lại.
madprops

8

Đối với tôi, tôi sửa lỗi này khi chỉnh sửa tệp .bashrc thêm xuất. Thêm sau khi nhận xét ban đầu.

Thêm ngôn ngữ suport.

export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_TYPE=en_US.UTF-8

Các loại quân đội,


6

Thêm locale đúng ~/.bashrc, ~/.bash_profile, /etc/environmentvà như thế sẽ giải quyết được vấn đề, tuy nhiên nó không được khuyến khích, vì nó sẽ ghi đè các thiết lập từ /etc/default/locale, mà là khó hiểu lúc tốt nhất và có thể dẫn đến những miền địa phương không được áp dụng một cách nhất quán lúc tồi tệ nhất.

Thay vào đó, người ta nên chỉnh sửa /etc/default/localetrực tiếp, có thể trông giống như thế này:

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US

Thay đổi sẽ có hiệu lực vào lần đăng nhập tiếp theo. Bạn có thể lấy miền địa phương mới trong một vỏ hiện có bằng cách tìm nguồn cung ứng /etc/default/localenhư sau:

$ . /etc/default/locale

1
cần khởi động lại hệ thống sau bước này
Ghanshyam Bagul

Bạn có thể chỉ cần nhận xét địa điểm mong muốn trong "/etc/locale.gen" sau đó chạy:locale-gen
Dave Everitt

5

Đối với bất kỳ ai kết nối với DigitalOcean hoặc một số nhà cung cấp dịch vụ lưu trữ đám mây khác từ iTerm2.app trên MacOS High Sierra và gặp lỗi này trên một số lệnh:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US.UTF-8"
  are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").

Điều này đã khắc phục vấn đề cho tôi:

nhập mô tả hình ảnh ở đây

Tôi biết chủ đề này đã cũ nhưng có lẽ ai đó sẽ thấy điều này hữu ích. Tôi biết làm thế nào điều này có thể gây phiền nhiễu.


Yup là thiết lập này trong iterm2! Cảm ơn!
Brian Olsen

4

Theo câu trả lời được chấp nhận:

LANG = C ssh thợ săn2.

LC_ALL = C ssh thợ săn2

về phía khách hàng đã lừa tôi.


Làm việc cho tôi trên OSX 10.10.3, trong khi chỉ "LANG = C" là không đủ. Cảm ơn Alex!
Christian

4

Với zsh ohmyzsh tôi đã thêm cái này vào .zshrc:

 # You may need to manually set your language environment
 LANGUAGE=en_US.UTF-8
 LANG=en_US.UTF-8
 LC_CTYPE=en_US.UTF-8
 LC_ALL=en_US.UTF-8

Bằng cách loại bỏ dòng export LANG=en_US.UTF-8

Mở lại một tab mới và SSH vào, làm việc cho tôi :)


3

Thêm LC_ALL="en_GB.utf8"vào /etc/environmentvà khởi động lại. Đó là tất cả.


2

Như mọi khi, ma quỷ nằm trong chi tiết ...

Trên Mac OS X v10.7.5 (Lion), để khắc phục một số lỗi Django , trong phần tôi ~/.bash_profileđã đặt:

export LANG=en_EN.UTF-8
export LC_COLLATE=$LANG
export LC_CTYPE=$LANG
export LC_MESSAGES=$LANG
export LC_MONETARY=$LANG
export LC_NUMERIC=$LANG
export LC_TIME=$LANG
export LC_ALL=$LANG

Và đến lượt tôi đã nhận được cảnh báo đó khi sử dụng Perl.

Lỗi của tôi! Như tôi đã nhận ra nhiều sau này, hệ thống của tôi là en_US.UTF-8! Tôi đã sửa nó đơn giản bằng cách thay đổi từ

export LANG=en_EN.UTF-8

đến

export LANG=en_US.UTF-8


2

Tất cả các câu trả lời trước đều sai. Thông điệp là rõ ràng - miền địa phương mất tích. Giải pháp là thêm miền địa phương thích hợp. Bạn làm điều đó bằng cách chỉnh sửa tệp /etc/locale.gen, xóa dấu # ở phía trước miền địa phương được báo cáo là bị thiếu và sau đó ban hành lệnh:

$ sudo locale-gen

Điều này thực sự sẽ tạo ra các địa điểm được chỉ định trong /etc/locale.gen và do đó, thông báo sẽ không được hiển thị.


Đây chỉ đơn giản câu trả lời và hoạt động trên Debian cổ (6) đối với tôi. Tất cả phần còn lại là quá phức tạp và một chút lạc đề.
Dave Everitt

2

trong trường hợp của tôi, với debian8.6, tôi đã phải thay đổi cài đặt trong:

/etc/ssh/ssh_config cho #AcceptEnv LANG LC_*

sshd_config cho#SendEnv LANG LC_*

sau đó khởi động lại dịch vụ ssh.

cuối cùng, đã làm

locale-gen en_US.UTF-8dpkg-reconfigure locales


2

Thêm các địa điểm bị thiếu vào .bash_profile

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile

Sau đó, nguồn .bash_profile của bạn

source ~/.bash_profile

1

Trong trường hợp của tôi, đây là đầu ra:

LANGUAGE = (unset),
LC_ALL = (unset),
LC_PAPER = "ro_RO.UTF-8",
LC_ADDRESS = "ro_RO.UTF-8",
....

Giải pháp là:

sudo locale-gen ro_RO.UTF-8

1

sshghi đè các biến cục bộ LC theo mặc định. Xem /etc/ssh/sshd_config:

AcceptEnv LANG LC_*

Vì vậy, có thể bạn cần đặt các biến này trong shell cục bộ của bạn.


1

Đối với tôi, trên Ubuntu 16.04 (Xenial Xerus), các công việc sau:

root@host:~#locale-gen en_GB.UTF-8
root@host:~#localectl set-locale LANG=en_GB.UTF-8,LC_ALL=en_GB.UTF-8

Sau đó khởi động lại ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.