How do I create a Unicode directory on Windows using Perl? -
मुझे यूनिकोड युक्त निर्देशिका नाम बनाने में संघर्ष है मैं Windows XP और Perl Camelbox 5.10.0 पर हूं।
अब तक मैं का उपयोग करने के लिए फाइल :: पथ qw (make_path)
को निर्देशिका बनाने के लिए किया था - जो जब तक ठीक काम नहीं करता
फाइल के लिए Win32API :: फ़ाइल qw (CreateFileW)
फ़ाइल नाम UTF-16LE एन्कोडेड है तो ठीक काम करता है। क्या निर्देशिकाओं के लिए कुछ समान है? यद्यपि यह अस्तित्व में नहीं है तो यूनिकोड पथ को बनाने के लिए या शायद एक पैरामीटर CreateFileW
को बताने के लिए?
धन्यवाद,
नीले
CreateDirectory
और दोस्तों को एक इंटरफ़ेस प्रदान करता है:
Win32 :: CreateDirectory (डायरेक्टरी)
डायरेक्टरी
बनाता है और सफलता पर सही मान देता है विस्तृत त्रुटि सूचना के लिए विफलता पर$ ^ E
की जांच करें।निर्देशक में सिस्टम कोडपेज के बाहर यूनिकोड वर्ण हो सकते हैं। निर्देशिका बन जाने के बाद आप
Win32 :: GetANSIPathName ()
का इस्तेमाल कर सकते हैं, जिसे सिस्टम कॉल और बाहरी कार्यक्रमों में भेजा जा सकता है।
पिछला उत्तर :
नोट: इसे रिकॉर्ड के लिए यहां रखते हुए क्योंकि आप सीधे अपने कार्यक्रम में CreateDirectoryW
का उपयोग करने का प्रयास कर रहे थे।
To इसे हाथ से करें, आयात करें:
Win32 :: API- & gt; आयात (कर्नेल 32 = & gt; qq {BOOL CreateDirectoryW (LPWSTR lpPathNameW, VOID * p)}); आपको $ पथ
के लिए CreateDirectoryW <एन्कोड करना होगा
:
#! / Usr / बिन / पर्ल का उपयोग सख्त; चेतावनियों का उपयोग करें; उपयोग utf8; एनकोड क्यूडब्ल्यू (एन्कोड) का उपयोग करें; Win32 :: API का उपयोग करें; Win32 :: API- & gt; आयात (कर्नेल 32 = & gt; qq {BOOL CreateDirectoryW (LPWSTR lpPathNameW, VOID * p)}); Binmode STDOUT, ': utf8'; Binmode STDERR, ': utf8'; मेरा $ dir_name = 'विलोग्राद'; मेरी $ ucs_path = encode ('UCS-2le', "$ dir_name \ 0"); CreateDirectoryW ($ ucs_path, undef) या मर "निर्देशिका बनाने में विफल: '$ dir_name': $ ^ E";
ई: \> dir 2010/02/02 01:05 PM волгоград 2010/02/02 01:04 PM москва
Comments
Post a Comment