การเข้ารหัสอักขระใดถูกใช้โดย dbf-file ใน shapefiles ดูเหมือนว่ามันจะถูกจัดการแตกต่างกันไปตามโปรแกรมและการตั้งค่าการเข้ารหัสในตัวเครื่อง การเข้ารหัสใดที่ 'ถูกต้อง' - ระบุไว้สำหรับรูปแบบหรือไม่
การเข้ารหัสอักขระใดถูกใช้โดย dbf-file ใน shapefiles ดูเหมือนว่ามันจะถูกจัดการแตกต่างกันไปตามโปรแกรมและการตั้งค่าการเข้ารหัสในตัวเครื่อง การเข้ารหัสใดที่ 'ถูกต้อง' - ระบุไว้สำหรับรูปแบบหรือไม่
คำตอบ:
มาตรฐาน DBF ดั้งเดิมกำหนดให้ใช้ISO8859-1และ ISO8859-1 เท่านั้น ดังนั้นเมื่อคุณได้รับ Shapefile ที่เป็นมาตรฐานจริง ๆ ควรเป็น ISO8859-1 แน่นอนว่าข้อ จำกัด (เก่ามาก) นี้ไม่สามารถใช้งานได้ในปัจจุบัน
ArcGIS และ Geopublisher, AtlasStyler และ Geoserver เริ่มขยายมาตรฐานเพื่อกำหนดการเข้ารหัส สำหรับArcGISเช่นเพียงแค่สร้างไฟล์. cpg (ที่มีชื่อไฟล์เดียวกับ Shapefiles อื่น ๆ ) และเติมด้วยชื่อของการเข้ารหัส
เช่นสร้าง myshape.cpg ด้วย texteditor และแทรก 5 ตัวอักษร "UTF-8" และบันทึก ถ้าคุณเปิด Shapefile ใน ArcGIS มันจะอ่านเนื้อหาที่เป็นข้อความของ DBF ในชุดอักขระนั้น
Geoserver: Geoserver WFS สามารถส่งออกเลเยอร์ WFS ใด ๆ เป็น Shapefile ที่ซิป เมื่อดำเนินการเสร็จแล้วไฟล์. cst จะอยู่ในไฟล์ zip ซึ่งจะเหมือนกับไฟล์. cpg
ข้อควรสนใจ: ทั้งหมดนี้ใช้ได้กับข้อมูลเท่านั้นไม่ใช่ชื่อคอลัมน์ คุณควรใช้ ASCII ในชื่อคอลัมน์ของ DBF เท่านั้นหากคุณต้องการให้ไฟล์สามารถเปิดได้กับโปรแกรมอื่น ๆ
คำแนะนำ: หากต้องการเปลี่ยนการเข้ารหัสของ DBF ให้เปิดด้วย OpenOffice Calc .. เลือก SaveAs ... คลิกที่ "ตัวเลือกตัวกรอง" ที่ด้านล่างซ้ายแล้วกดบันทึก จากนั้นคุณสามารถกำหนดการเข้ารหัสเพื่อแปลงเนื้อหาข้อความเป็น
General input/output error
คุณอาจไม่ได้มีการติดตั้งฐาน ปัญหาเหมือนกันไม่ว่าคุณจะใช้ OpenOffice หรือ LibreOffice
.cpg
ไฟล์ควรจะทำงานได้ดีใน QGIS เกินไป ณ libgdal 1.9 บางครั้งดูเหมือนว่าจำเป็นด้วย: ssrebelious.wordpress.com/2012/03/11/…
ฉันค่อนข้างแน่ใจว่าไม่มีการเข้ารหัส "ถูกต้อง" ไฟล์. dbf สามารถเข้ารหัสได้และคุณจะสามารถเปิด Shapefile และอ่านแอตทริบิวต์ได้อย่างถูกต้องหากคุณรู้
คุณสามารถค้นหากระดาษขาว ESRI ได้ที่นี่: http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
ฉันมักจะคาดหวังว่ารูปร่างไฟล์จะเป็น UTF-8 หรือในท้องถิ่นของประเทศที่ครอบคลุม (มักจะมีการเข้ารหัสภาษาละตินบางส่วน)
เมื่อใดก็ตามที่ฉันเห็นคำถามเกี่ยวกับการเข้ารหัสฉันแนะนำคนถึงบทความนี้: http://www.joelonsoftware.com/articles/Unicode.html
ตามที่บอกว่า:
มันไม่สมเหตุสมผลที่จะมีสตริงโดยไม่รู้ว่าใช้การเข้ารหัสอะไร คุณไม่สามารถเกาะหัวในทรายได้อีกต่อไปและแสร้งว่าข้อความ "ธรรมดา" คือ ASCII
วิธีง่ายๆคือแปลงไฟล์ shp เป็นไฟล์ csv และใช้ enca หรือ iconv เพื่อตรวจจับการเข้ารหัส ฉันลองใช้ไฟล์ UTF8 และ gb18030 แล้วใช้งานได้