ฉันใช้เวลาส่วนใหญ่ssh
กับเครื่องต่าง ๆ ซึ่งทั้งหมดนี้แตกต่างกันไป (บางอันฝังอยู่ใช้งานกับ Linux บางตัวใช้งาน BSD และ c) บนเครื่องของฉันเองฉันใช้ OS X ซึ่งแน่นอนว่ามี userland ที่ใช้ BSD ภาษาของฉันบนเครื่องเหล่านั้นถูกตั้งค่าเป็น en_GB.UTF-8 ซึ่งเป็นหนึ่งในตัวเลือกที่ใช้ได้:
% echo `sw_vers`
ProductName: Mac OS X ProductVersion: 10.8.2 BuildVersion: 12C60
% locale -a | grep -i 'en_gb.utf'
en_GB.UTF-8
ระบบ Linux ที่มีความสามารถมากกว่าที่ฉันใช้ดูเหมือนจะมีตัวเลือกที่เทียบเท่า แต่ฉันทราบว่าบน Linux ชื่อนั้นแตกต่างกันเล็กน้อย:
% lsb_release -d
Description: Debian GNU/Linux 6.0.3 (squeeze)
% locale -a | grep -i 'en_gb.utf'
en_GB.utf8
นี่ทำให้ฉันประหลาดใจ: เมื่อฉันssh
เข้าสู่เครื่อง Linux จาก Mac ของฉันและส่งต่อLC_*
ตัวแปรทั้งหมดของฉันด้วยคำต่อท้าย 'UTF-8' เครื่อง Linux นั้นเข้าใจสิ่งที่ถูกถามหรือไม่ หรือเป็นเพียงแค่การย้อนกลับไปยังสถานที่อื่น ๆ ?
แก้ไข:นี่คือตัวอย่างของสิ่งที่ฉันหมายถึง:
% ssh -v odin
...
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_ALL = en_GB.UTF-8
debug1: Sending env LC_COLLATE = en_GB.UTF-8
debug1: Sending env LC_CTYPE = en_GB.UTF-8
debug1: Sending env LC_MESSAGES = en_GB.UTF-8
debug1: Sending env LC_MONETARY = en_GB.UTF-8
debug1: Sending env LC_NUMERIC = en_GB.UTF-8
debug1: Sending env LC_TIME = en_GB.UTF-8
debug1: Sending env LANG = en_GB.UTF-8
odin:~ % locale | tail -1 # locale is set to .UTF-8 without error...
LC_ALL=en_GB.UTF-8
odin:~ % locale -a | grep 'en_GB.UTF-8' # ... even though .UTF-8 isn't an option
odin:~ %
ไม่ว่าในกรณีใดกลไกหลังพฤติกรรมของมันคืออะไรและมันขึ้นอยู่กับการตั้งค่าใด ๆ (เช่นฉันจะเห็นพฤติกรรมแบบเดียวกันในระบบที่ใช้ BusyBox เหมือนกับบน GNU หรือไม่)