मैं अपना बहुत सारा समय ssh
विभिन्न मशीनों में बिताता हूं , जिनमें से सभी अलग-अलग हैं (कुछ एम्बेडेड हैं, कुछ लिनक्स चलाते हैं, कुछ बीएसडी, और सी चलाते हैं)। मेरी अपनी स्थानीय मशीनों पर, हालांकि, मैं ओएस एक्स का उपयोग करता हूं, जो निश्चित रूप से बीएसडी पर आधारित एक उपयोगकर्ताभूमि है। उन मशीनों पर मेरा स्थान 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
मेरे द्वारा उपयोग किए जाने वाले अधिक सक्षम लिनक्स सिस्टम में से कई में एक समान विकल्प दिखाई देता है, लेकिन मैं ध्यान देता हूं कि लिनक्स पर नाम थोड़ा अलग है:
% lsb_release -d
Description: Debian GNU/Linux 6.0.3 (squeeze)
% locale -a | grep -i 'en_gb.utf'
en_GB.utf8
यह मुझे आश्चर्यचकित करता है: जब मैं ssh
अपने मैक से लिनक्स मशीन में आता हूं, और यह मेरे सभी LC_*
चर को उस 'UTF-8' प्रत्यय के साथ आगे बढ़ाता है , तो क्या लिनक्स मशीन भी समझती है कि उससे क्या पूछा जा रहा है? या यह सिर्फ कुछ अन्य लोकेल पर वापस गिर रहा है?
संपादित करें: यहाँ एक उदाहरण दिया गया है जिसका मैं उल्लेख कर रहा हूँ:
% 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:~ %
किसी भी मामले में, उसके व्यवहार के पीछे क्या तंत्र है, और क्या यह किसी विशेष सेट-अप पर निर्भर है (जैसे, क्या मैं एक GNBox-आधारित एक के रूप में एक व्यस्त बॉक्स-आधारित प्रणाली पर समान व्यवहार देखूंगा)?