วิธีการเข้ารหัส shapefiles จาก LATIN1 ถึง UTF-8


คำตอบ:


16

คุณสามารถทำได้ด้วย QGIS ก่อนโหลดรูปร่างของคุณแล้วsave asและการเข้ารหัสเลือกเมนูแบบเลื่อนลง utf-8 แล้วบันทึกไฟล์ของคุณ


7
คำเตือน : สำหรับวิธีแก้ปัญหานี้ในการทำงาน qgis ต้องเริ่มต้นในสภาพแวดล้อม LATIN1 / ISO-8859-1 เมื่อคุณเปิดไฟล์รูปร่างอินพุทมิฉะนั้นจะไม่สามารถอ่านได้อย่างถูกต้อง หากคุณกำลังทำงานในสภาพแวดล้อม UTF8 การแปลงอาจล้มเหลวแบบไม่โต้ตอบให้ทำลายข้อมูลโดยขึ้นอยู่กับข้อมูลใน shapefile BTW ระบบปฏิบัติการส่วนใหญ่เริ่มต้นที่ UTF8
unicoletti

1
โปรดทราบว่าในบางสถานการณ์ก็อาจไม่ทำงานผมก็มีชนิดของปัญหา: ( osgeo-org.1560.n6.nabble.com/UTF-8-no-more-td4647456.html )
JaakL

ฉันกำลังพยายามบันทึกไฟล์รูปร่างเดียวจากระบบไปยัง utf-8 แต่มันไม่ทำงาน gis.stackexchange.com/questions/219092/…
Muhammad Faizan Khan

27

สมมติว่าคุณอยู่บน Linux และมีการเข้าถึงGDALรุ่นล่าสุดคุณสามารถลองต่อไปนี้ (จากโพสต์นี้):

 export SHAPE_ENCODING="ISO-8859-1"
 ogr2ogr output.shp input -lco ENCODING=UTF-8

หมายเหตุ: LATIN1 ควรทำงานแทน ISO-8859-1

ใน Windows ไม่ได้ตั้งค่าSHAPE_ENCODING, ogr2ogrไม่รู้จักหรือISO-8859-1LATIN1


เพียงเพื่อชี้แจง“ ล่าสุด” ที่นี่ดูเหมือนจะหมายถึง 1.9.x ฉันลองมันด้วย 1.8.1 และมันใช้งานไม่ได้ลองอีกครั้งกับ 1.9.1 และมันก็ทำได้
Michal Migurski

ไม่ได้ผลสำหรับฉันบน Windows
Pavel Radzivilovsky

ทำให้มันใช้งานได้ใน Windows ได้อัพเดตคำตอบแล้ว
flup

คุณรู้หรือไม่ว่าฉันสามารถค้นหารายการค่าที่ใช้ได้สำหรับSHAPE_ENCODINGบางแห่ง
JJD

1
@JJD มีการใช้ไอคอนเดียวกัน: gnu.org/software/libiconv
unicoletti

3

หากความเข้าใจใน Shapefiles ของฉันถูกต้องส่วนที่มีความอ่อนไหวการเข้ารหัสคือฐานข้อมูลแอ็ตทริบิวต์ที่มีอยู่ในไฟล์ DBF

นี่คือคำตอบที่ช่วยฉันแก้ปัญหานี้โดยใช้ LibreOffice Calc / ฐาน:

https://gis.stackexchange.com/a/3663/17998

มันมีประโยชน์เพิ่มเติมที่คุณสามารถเปิดไฟล์ DBF โดยใช้ชุดอักขระที่แตกต่างและทำให้ทราบว่าการเข้ารหัสปัจจุบันคืออะไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.