2011-09-21 15 views
5

ऐसा लगता है कि PHP में फ़ाइल हैंडलिंग कुछ वर्णों (जैसे €) एन्कोडेड यूटीएफ -8 के साथ काम नहीं करता है यदि पथ हार्डकोड किया गया है और PHP- फ़ाइल यूटीएफ- 8।यूटीएफ -8 विशेष वर्णों के साथ PHP फ़ाइल हैंडलिंग

क्या यह सभी (या अधिकांश पश्चिमी पात्रों) के साथ काम करना संभव है? क्या कोई पुस्तकालय है जो संभवतः संभव बनाता है? क्योंकि मुझे कोई नहीं मिला।

उदाहरण के लिए एक फ़ोल्डर äöü&()éèàâêûô@$+ç%&= नामित £ _; {[]} ~ '¢ ¬§ ° # @ | ... खिड़कियों is_dir साथ काम नहीं करेंगे में € `()।

संपादित करें: समाधान

ठीक है, मैं एक समाधान मिल गया है। मैंने अभी तक पूरी तरह से इसका परीक्षण नहीं किया है, मुझे यकीन नहीं है कि यह अभी भी मूर्खतापूर्ण है और मुझे नहीं पता कि यह सबसे अच्छा अभ्यास है या नहीं, लेकिन एएनएसआई को स्ट्रिंग को एन्कोड करना चाल चल रहा है (कम से कम जिस स्ट्रिंग को मैंने पोस्ट किया है)।

$string = iconv(mb_detect_encoding($string, "auto"), 'Windows-1252', $string); 

मुझे लगता है कि यह अधिकांश पश्चिमी विंडोज कंप्यूटरों की डिफ़ॉल्ट सेटिंग के साथ काम करना चाहिए।

उत्तर

0

मैं ऐसे फ़ोल्डर के साथ भी काम करने से इंकार कर दूंगा! :-)
चुटकुले अलग, आप फ़ाइल को यूटीएफ -16 के रूप में सहेजने का प्रयास कर सकते हैं, क्योंकि यह एन्कोडिंग विंडोज़ आंतरिक रूप से उपयोग किया जाता है।

+1

हाय। आपके प्रतिक्रिया के लिए धन्येवाद। तुमने मुझे एक विचार दिया। मैं इसे '$ string = iconv (mb_detect_encoding ($ string, "auto"),' Windows-1252 ', $ string) जैसे कुछ के साथ एएनएसआई पर एन्कोड करने का प्रयास करता हूं;' और ऐसा लगता है कि यह चाल है। मैंने अभी तक पूरी तरह से इसका परीक्षण नहीं किया है, लेकिन मैंने पोस्ट की गई स्ट्रिंग के लिए काम किया है (अभी के लिए)। – huuerequer

संबंधित मुद्दे