2012-03-09 27 views
5

जब मैं एक MySQL डेटाबेस से डेटा निकालता हूं, तो कुछ आउटपुट में विशेष वर्ण होते हैं, उदा। emacs यह \240 और \346 को डीकोड करता है।विशेष वर्णों को यूटीएफ -8 में कैसे परिवर्तित करें?

जब एक UTF-8 टर्मिनल में दिखाया गया है, विशेष वर्ण केवल चरित्र प्रति 1 बाइट का उपयोग करने के रूप में

तो इस्तेमाल किया एन्कोडिंग तेजी दिखाया गया है।

मैं उदा। देखें कि \346æ होना चाहिए।

प्रश्न

करता पर्ल एक मॉड्यूल कि UTF-8 के लिए इन विशेष वर्ण सांकेतिक शब्दों में बदलना कर सकते हैं?

+0

http://blog.jonnay.net/archives/820-Emacs-and-UTF-8-Encoding.html? –

+0

सवाल emacs के बारे में नहीं है। मैं पर्ल को सामग्री को यूटीएफ -8 में एन्कोड करना चाहता हूं। –

+1

क्या आपने यूटीएफ -8 दिखाने के लिए टर्मिनल सेट अप किया है? –

उत्तर

3

अपने डेटा को पर्ल के आंतरिक प्रारूप में जो भी एन्कोडिंग से डीकोड करने के लिए Encode::decode का उपयोग करें।

फिर, फ़ाइल में डेटा लिखते समय, 'utf8' परत को यूटीएफ -8 में डेटा लिखने के लिए सेट करें।

use Encode; 

my $data_from_database = ...; 

my $perl_data = decode('ISO-8859-1', $data_from_database); 

binmode STDOUT, ':utf8'; 

print $perl_data; 
संबंधित मुद्दे