en_US.UTF-8
ระบบปฏิบัติการของคุณไม่ทราบเกี่ยวกับ
คุณไม่ได้พูดถึงแพลตฟอร์มที่เฉพาะเจาะจง แต่ฉันสามารถทำให้เกิดปัญหาของคุณได้:
% uname -a
OSF1 hunter2 V5.1 2650 อัลฟา
% perl -e exit
perl: คำเตือน: การตั้งค่าภาษาล้มเหลว
perl: คำเตือน: โปรดตรวจสอบว่าการตั้งค่าภาษาของคุณ:
LC_ALL = (ไม่ได้ตั้งค่า)
LANG = "en_US.UTF-8"
ได้รับการสนับสนุนและติดตั้งบนระบบของคุณ
perl: คำเตือน: การย้อนกลับไปยังโลแคลมาตรฐาน ("C")
ฉันเดาว่าคุณใช้ ssh เพื่อเชื่อมต่อกับโฮสต์ที่เก่ากว่านี้จากเครื่องเดสก์ท็อปรุ่นใหม่ เป็นเรื่องปกติที่/etc/ssh/sshd_config
จะมี
AcceptEnv LANG LC_*
ซึ่งอนุญาตให้ไคลเอนต์เผยแพร่ค่าของตัวแปรสภาพแวดล้อมเหล่านั้นไปยังเซสชันใหม่
คำเตือนจะให้คำแนะนำเกี่ยวกับวิธีการบีบหากคุณไม่ต้องการใช้ภาษาเต็ม:
% env LANG = C perl -e exit
%
หรือทุบตี:
$ LANG = C perl -e exit
$
สำหรับการแก้ไขแบบถาวรให้เลือกข้อใดข้อหนึ่ง
- บนโฮสต์ที่เก่ากว่าให้ตั้งค่า
LANG
ตัวแปรสภาพแวดล้อมในไฟล์เริ่มต้นของเชลล์
- การปรับเปลี่ยนสภาพแวดล้อมของคุณบนฝั่งไคลเอ็นต์เช่นแทนที่จะใช้คำสั่ง
ssh hunter2
LANG=C ssh hunter2
- หากคุณมีสิทธิ์ของผู้ดูแลระบบให้หยุด ssh จากการส่งตัวแปรสภาพแวดล้อมโดยการแสดงความคิดเห็น
SendEnv LANG LC_*
บรรทัดในไฟล์ท้องถิ่น /etc/ssh/ssh_config
(ขอบคุณคำตอบนี้ดูBug 1285สำหรับ OpenSSH มากขึ้น)