डीबीएफ फ़ाइल द्वारा किस वर्ण एन्कोडिंग का उपयोग आकृतिफाइल्स में किया जाता है?


52

डीबीएफ-फाइल द्वारा शेपफाइल्स में किस वर्ण-एन्कोडिंग का उपयोग किया जाता है? ऐसा लगता है कि यह कार्यक्रम और मशीन के स्थानीय एन्कोडिंग-सेटिंग्स के आधार पर अलग-अलग है। कौन सा एन्कोडिंग 'सही' है - प्रारूप के लिए निर्दिष्ट?


आपको निश्चित रूप से उत्तर ध्वज को अल्फोंक्स को देना चाहिए। @underdark कोई अपराध नहीं!
JJD

जवाबों:


60

मूल DBF मानक ISO8859-1 , और केवल ISO8859-1 का उपयोग करने के लिए परिभाषित करता है । इसलिए, जब आपको एक शेपफाइल मिलता है जो वास्तव में मानकों के अनुरूप होता है, तो इसे ISO8859-1 होना चाहिए। बेशक, यह (बहुत पुराना) प्रतिबंध आजकल वास्तव में प्रयोग करने योग्य नहीं है।

आर्कगिस और जियोप्रोसेसर, एटलस सेलर और जियोसेवर ने एन्कोडिंग को परिभाषित करने के लिए मानक का विस्तार करना शुरू कर दिया। के लिए ArcGIS , जैसे, सिर्फ एक .cpg फ़ाइल (अन्य शेपफ़ाइलें रूप में एक ही basename के साथ) बना सकते हैं और एन्कोडिंग के नाम के साथ भरें।

जैसे एक texteditor के साथ एक myshape.cpg बनाएं और 5 अक्षर "UTF-8" डालें और इसे सेव करें। यदि आप आर्कजीआईएस में शेपफाइल को खोलते हैं, तो यह डीबीएफ की पाठ्य सामग्री को उस चारसेट में पढ़ता है।

Geoserver: Geoserver WFS किसी भी WFS लेयर को ज़िप्ड शेपफाइल के रूप में एक्सपोर्ट कर सकता है। जब यह किया जाता है, तो .cst फ़ाइल ज़िप में निहित होती है, बिल्कुल .cpg फ़ाइल की तरह ही।

ध्यान दें: यह सब केवल डेटा पर लागू होता है, न कि कॉलम नामों पर। यदि आप फ़ाइल को अन्य कार्यक्रमों के साथ खोलना चाहते हैं, तो आपको वास्तव में केवल एक DBF के कॉलम नामों में ASCII का उपयोग करना चाहिए।

संकेत: किसी DBF के एन्कोडिंग को बदलने के लिए इसे OpenOffice Calc के साथ खोलें .. SaveAs चुनें ... नीचे बाईं ओर "फ़िल्टर विकल्प" पर क्लिक करें और सहेजें दबाएं। फिर आप पाठ सामग्री को परिवर्तित करने के लिए एन्कोडिंग को परिभाषित कर सकते हैं।


3
महान पद! दुनिया एक बेहतर जगह होगी अगर लोग अपने आकार की फाइलों को .cpg फाइलों के साथ भेजते हैं।
UnderDark

2
क्या आपके पास ISO8559-1 चारसेट के आधिकारिक चारसेट होने का संदर्भ है? मेरे द्वारा पाया गया DBF चश्मा बहुत छोटा है और इसका उल्लेख नहीं करते हैं।
क्रिस

3
यदि आप प्राप्त करते हैं तोGeneral input/output error आपके पास शायद आधार स्थापित नहीं है । समस्या यह है कि क्या आप OpenOffice या LibreOffice का उपयोग करते हैं।
JJD

2
OpenOffice / LibreOffice Calc संकेत के लिए +1। वहाँ आप सुनिश्चित कर सकते हैं कि DBF फ़ाइल में एन्कोडिंग है। हालाँकि, जैसा कि JJD ने बताया, उबंटू पर भी आपको Calc में DBF फाइलें खोलने के लिए LibreOffice Base स्थापित होना चाहिए।
मैरियन

1
एक .cpgफ़ाइल QGIS में ठीक काम करने वाली है, वह भी, libgdal 1.9 के रूप में। कभी-कभी यह आवश्यक भी लगता है: ssrebelious.wordpress.com/2012/03/11/…
krlmlr

11

मुझे पूरा यकीन है कि कोई "सही" एन्कोडिंग नहीं है। .Dbf फ़ाइल किसी भी एन्कोडिंग में हो सकती है और यदि आप इसे जानते हैं तो आप शेपफाइल को खोल पाएंगे और विशेषताओं को सही ढंग से पढ़ पाएंगे।

आप यहां ईएसआरआई श्वेत पत्र पा सकते हैं: http://www.esri.com/library/whitepapers/pdfs/shapefun.pdf

मैं आमतौर पर यूटीएफ -8 या कवर किए गए देश (अक्सर कुछ लैटिन एन्कोडिंग) के स्थानीय में एक आकार की उम्मीद करता हूं।


7

जब भी मैं एन्कोडिंग पर एक प्रश्न देखता हूं मैं इस लेख में लोगों को संदर्भित करता हूं: http://www.joelonsoftware.com/articles/Unicode.html

जैसा कि यह कहते हैं:

यह समझ में नहीं आता है कि यह जानने के लिए कि यह किस एन्कोडिंग का उपयोग करता है, स्ट्रिंग नहीं है। अब आप रेत में अपना सिर नहीं रख सकते हैं और यह दिखाते हैं कि "सादा" पाठ ASCII है।


ठीक ठीक! यह हर समय होता है कि लोग मुझे बताते हैं कि मैंने उन्हें गलत एन्कोडिंग में सिर्फ एक फाइल भेजी है क्योंकि एक संपादक (अधिकांश समय np ++) जंगली अनुमान लगाता है। +1
unicoletti

3

एक सरल तरीका है सीएसपी फ़ाइल को बदलने के लिए shp फ़ाइल। और एन्कोडिंग का पता लगाने के लिए enca या iconv का उपयोग करें। मैंने UTF8 और gb18030 फ़ाइलों के साथ प्रयास किया और यह काम करता है।


मौजूदा एन्कोडिंग का पता लगाने के तरीके के रूप में उत्तर के लिए +1। मुझे लगता है कि हालांकि यह प्रश्न अधिक लग रहा था कि मानक एन्कोडिंग क्या होगी, यदि कोई हो।
स्थानिक

यह पोस्ट एन्कोडिंग का पता लगाने के तरीके के सवाल को भी संबोधित करती है: gis.stackexchange.com/questions/12218/…
toms
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.