2010-02-16 6 views
44

में यूटीएफ -8 नाम के साथ निर्देशिका बनाएं I WinXP में विस्क्रिप्ट का उपयोग करके रूसी (यूटीएफ -8) में निर्देशिका नहीं बना सकता।विम

उदाहरण

:call mkdir("привет") 

लिए привет बजाय привет नाम के साथ निर्देशिका बनाता है।

मैं भी

:call system("mkdir привет") 

की कोशिश की है एक ही परिणाम के साथ।

क्या यह संभव है?

+2

शायद 'एन्कोडिंग' विकल्प में मदद मिलेगी का समायोजन? –

+0

2 लॉरेंस गोंसाल्व्स: हाँ अगर मैं इसे 'cp1251' पर सेट करता हूं - मुझे लगता है कि एक रूसी winxp उपयोग करता है - तो यह काम करता है। –

+0

2 लॉरेंस गोंसाल्व: लेकिन मुझे यूटीएफ -8 से सीपी 1251 में 'привет' को परिवर्तित करना होगा। स्पष्ट रूपांतरण के बिना कोई रास्ता है? –

उत्तर

19

यह मिला।

मैं समारोह iconv उपयोग करना चाहिए:

:call mkdir(iconv("привет", "utf-8", "cp1251")) 
+5

यह खराब अभ्यास की तरह दिखता है, यह देखते हुए कि आप यूटीएफ -8 से बाहर निकल रहे हैं। आपको शायद यह जांचना चाहिए कि यूटीएफ -8 नाम आपके लिए क्यों काम नहीं करते हैं। – dionyziz

+2

@dionyziz, शायद इसका जवाब है क्योंकि वह WinXP पर है और सिस्टम लोकेल cp1251 है और इसे utf-8 पर सेट करने का कोई तरीका नहीं है। –

30

कोशिश इस

:!mkdir "привет" 
+0

वही परिणाम -'РїСЂРёРІРμС,' –

64

क्या मैं आमतौर पर करते हैं मैं :Explore साथ एक्सप्लोरर मोड में स्विच और d प्रेस है। यह मुझे निर्देशिका नाम के लिए पूछता है, फिर।

+0

मुझे इसे एक विस्क्रिप्ट में काम करने की आवश्यकता है। –

1

आप encod बदल सकता है। जोड़ें:

chcp 65001 
:call mkdir("привет") 

chcp 65001 - UTF-8

+0

आपका मतलब है कि आप कंसोल को यूटीएफ -8 का उपयोग करने के लिए सेट करते हैं (कंसोल में 'chcp 65001' निष्पादित करें) और फिर केवल Vim लॉन्च करें? संदर्भ के लिए, [65001 यूटीएफ -8 का उपयोग करने के लिए छद्म कोड कोड है] (// stackoverflow.com/a/1629454/2157640)। – Palec