ด้านล่างรายละเอียดของกระบวนการที่ฉันใช้สำหรับแปลงไฟล์ GeoDataBase ด้วยฟิลด์ภาษาอาหรับเป็นรูปแบบไฟล์ด้วยการเข้ารหัส UTF-8 ที่เปิดอย่างมีความสุขทั้งใน QGIS และ ArcMap แสดงทั้งภาษาอาหรับและภาษาอังกฤษอย่างถูกต้อง (โดยไม่ต้องใช้ส่วนขยายเพื่อส่งออกหรืออ่าน)
- แนวคิดพื้นฐานคือ: จาก FGDB ส่งออกรูปร่างไฟล์รวมถึง. dbf (ในการเข้ารหัสผิด) จากนั้นส่งออกตารางแอตทริบิวต์ของเลเยอร์เดียวกันกับข้อความ (ในการเข้ารหัสที่ถูกต้องซึ่งเป็น UTF-8) และใช้โปรแกรมอื่น เพื่อแทนที่เนื้อหาของ shapefile .dbf ด้วยฟิลด์ข้อมูล UTF-8 ที่เหมาะสมและบันทึก. dbf ด้วยการเข้ารหัส UTF-8 จากนั้นเพิ่มไฟล์. cpg ลงในแต่ละ shapefile เพื่อแจ้ง ArcGIS เกี่ยวกับการเข้ารหัสใหม่ของ. dbf ขั้นตอน:
1) เพิ่มเลเยอร์จาก FGDB ลงใน ArcMap (ฉันใช้ 10.1 แต่ไม่มีเหตุผลที่มันจะไม่ทำงานในเวอร์ชันก่อนหน้านี้เพราะบิตการเข้ารหัสเกิดขึ้นในภายหลังนอก Arc) ในการส่งออกให้คลิกขวาที่เลเยอร์และเลือกข้อมูล -> ส่งออกข้อมูลคลิกปุ่มโฟลเดอร์ในกล่องโต้ตอบการส่งออกเพื่อเปิดกล่องโต้ตอบบันทึกและเลือก Shapefile เป็นรูปแบบผลลัพธ์
1b) วิธีสำรองไปด้านบน: นำทางไปยัง FGDB ใน ArcCatalog คลิกขวาเลือกส่งออก -> ไปยัง Shapefile (หลายรายการ) และส่งออก FGCB ทั้งหมดเป็นโฟลเดอร์ที่เต็มไปด้วยไฟล์รูปร่างในการดำเนินการครั้งเดียว)
2) ตอนนี้คุณมีชุดไฟล์รูปร่างที่ไม่มีความหมายซึ่งสคริปต์ภาษาอาหรับควรเป็น (ในเครื่องของฉันมันแสดงเครื่องหมายคำถามแทนอักขระ) ส่วน. dbf ของ shapefiles เองที่เปิดใน Excel หรืออะไรก็ตามมีความหมายแทนภาษาอาหรับ ไม่ใช่เพียงปัญหาการแสดงผลในโปรแกรม GIS แต่ไฟล์. dbf นั้นไม่มีตัวอักษรภาษาอาหรับ ยังไม่เป็นประโยชน์
3) ใน ArcMap เปิดตารางแอตทริบิวต์ของเลเยอร์จาก FGDB ตารางจะเปิดขึ้นพร้อมทั้งแสดงภาษาอังกฤษและภาษาอาหรับอย่างถูกต้อง (นั่นเป็นสาเหตุที่ FGDB ถูกใช้ตั้งแต่แรก) ในเมนูตัวเลือกตารางของหน้าต่างตารางแอตทริบิวต์เลือกส่งออกและในกล่องโต้ตอบส่งออกข้อมูลคลิกปุ่มโฟลเดอร์ออกเพื่อไปยังกล่องโต้ตอบบันทึกข้อมูลที่คุณเลือกไฟล์ข้อความเป็นประเภทเอาท์พุท ตอนนี้คุณมีไฟล์ข้อความที่จะเปิดใน Notepad ด้วยตัวคั่นจุลภาคเข้ารหัสเป็น UTF-8 โดยเข้ารหัสทั้งภาษาอังกฤษและภาษาอาหรับอย่างถูกต้อง
ตอนนี้เพื่อรับข้อมูลนั้นในส่วน. dbf ของรูปร่างไฟล์!
4) Open LibreOffice Calc ซึ่งเป็นโคลน Excel แบบโอเพ่นซอร์สที่เปิดจัดการและบันทึกไฟล์. dbf ได้อย่างง่ายดายเพื่อเปิดไฟล์. dbf ของ shapefile
ในกรณีนี้ฉันไม่ได้ใช้ LibreOffice แทนที่จะเป็น MS Office ด้วยเหตุผลทางอุดมการณ์ แต่เพียงเพราะฉันไม่สามารถหาวิธีที่จะทำให้ Excel บันทึกไฟล์. dbf ซึ่งเป็นเรื่องง่ายใน Calc จริงๆแล้วมันเป็น ตัวเลือกเริ่มต้นเมื่อกดปุ่มบันทึกหลังจากเปิดและแก้ไขไฟล์. dbf ใน Calc ในขณะที่ Excel จะระบุว่าไฟล์ "ไม่สามารถบันทึกในรูปแบบปัจจุบัน" และไม่เป็นประโยชน์เพื่อเสนอ "บันทึกเป็นรูปแบบล่าสุด" (ไม่มีตัวเลือกสำหรับ. dbf) มีส่วนขยาย / ปลั๊กอินสำหรับ Excel ที่ตั้งใจจะทำงาน (
ไฟล์. dbf ใน Calc ยังคงแสดงซึ่งพูดพล่อยๆแทนภาษาอาหรับ ข้างให้เปิด. csv ที่คุณส่งออกจากตารางคุณลักษณะของ shapefile เดียวกันตรวจสอบให้แน่ใจว่าคุณระบุ UTF-8 เป็นการเข้ารหัส (และเครื่องหมายจุลภาคเป็นตัวคั่น) ในกล่องโต้ตอบการเปิด ไฟล์ข้อความควรเปิดในสเปรดชีท Calc ที่สองโดยที่ภาษาอาหรับแสดงอย่างถูกต้องและควรมีคอลัมน์เดียวกันกับ. dbf บวกคอลัมน์ OBJECTID ที่จุดเริ่มต้น คัดลอกวางคอลัมน์จาก. csv ที่มีอารบิกที่เหมาะสมลงใน. dbf (อันที่จริงฉันเพิ่งคัดลอกวางทั้งตารางโดยมีข้อยกเว้นของคอลัมน์ ID ด้านซ้ายสุดเพื่อประหยัดเวลา; กดบันทึกใน. dbf ที่แก้ไขใน LibreOffice (มันจะถามว่าคุณต้องการใช้รูปแบบแปลก ๆ เช่น. dbf; ใช่คุณทำได้)
ทำขั้นตอนนี้ซ้ำสำหรับคอมโพเนนต์. dbf ทั้งหมดของ shapefiles จาก FGDB แทนที่คอลัมน์ซึ่งพูดพล่อยๆทั้งหมดด้วยสตริงอารบิก
5) ทันทีที่คุณบันทึกส่วน. dbf ใหม่ด้วยคอลัมน์ภาษาอาหรับที่วางไว้คุณสามารถเปิดรูปร่างไฟล์ใน QGIS และทำงานได้อย่างถูกต้องในทั้งสองภาษาโดยที่คุณระบุ UTF-8 เป็นการเข้ารหัสใน Import Vector ไฟล์โต้ตอบ อย่างไรก็ตามพวกเขายังทำงานไม่ถูกต้องใน ArcGIS (หรืออย่างน้อยก็ไม่ใช่ในทุกรุ่น) เพราะ ArcGIS ไม่รู้จักการเข้ารหัสโดยอัตโนมัติหรือให้คุณเลือกเมื่อคุณเพิ่มรูปร่างไฟล์ลงในโครงการ Arc ต้องการส่วนประกอบที่แยกจากกันไปยัง shapefile ซึ่งเรียกว่าไฟล์ Code Page Conversion (.cpg) เพื่อสั่งให้เข้ารหัสที่อ่าน
6) ใช้โปรแกรมแก้ไขข้อความ (notepad, nano, หรืออะไรก็ตาม แต่ไม่ใช่ Word หรือโปรแกรมประมวลผลคำอื่น ๆ ) เพื่อสร้างไฟล์ข้อความที่มีเพียงห้าตัวอักษร "UTF-8" บันทึกเป็น. cpg สำหรับแต่ละ shapefiles (ฉันคลิกที่ peice ของ shapefile ในกล่องโต้ตอบ Save As จากนั้นลบนามสกุลและเพิ่ม. cpg) ในโฟลเดอร์เดียวกันกับ shapefile (โดยทั่วไปจะกลายเป็น peice ofHi อื่น ไฟล์รูปร่างหลายส่วน) นามสกุล. cpg บอกกับ Arc ว่าเป็นไฟล์ที่มีข้อมูลเกี่ยวกับการเข้ารหัสไฟล์. dbf เมื่อรวมเข้ากับ shapefile พร้อมกับพี่น้องที่มีชื่อเดียวกัน แต่แตกต่างกันไปแล้วการเข้ารหัสของ shapefile จะถูกจดจำโดยอัตโนมัติโดย ArcGIS
7) Voila ตอนนี้คุณมีรูปร่างที่มีทั้งสตริงภาษาอังกฤษและอารบิกเท่าที่ฉันสามารถบอกได้อย่างที่พวกเขาอยู่ในไฟล์ GeoDataBase ดั้งเดิม พวกเขาเปิดในการติดตั้งของฉันทั้ง ArcMap และ QGIS และในทั้งสองกรณีสตริงในทั้งสองภาษาแสดงอย่างถูกต้องรวมถึงในฉลากแผนที่
คำเตือน:
ดูเหมือนว่าสำเนาทั้งหมดของ ArcGIS จะไม่ส่งออกตารางแอตทริบิวต์เป็นไฟล์ข้อความที่ถูกใส่ข้อมูลอย่างถูกต้อง (บนคอมพิวเตอร์อย่างน้อยหนึ่งเครื่องที่พยายามส่งออกตารางแอตทริบิวต์ไปยังไฟล์ข้อความจะส่งผลให้เกิดไฟล์ที่มีเฉพาะส่วนหัวเท่านั้น ไม่ใช่พฤติกรรมที่เหมาะสมของ Arc (แน่นอนว่ามันควรจะสามารถส่งออก Attribute Tables เป็นข้อความ) แต่มันอาจเกิดขึ้นสำหรับผู้ใช้บางคนซึ่งทำให้ขั้นตอนที่เหลือเป็นไปไม่ได้
ดูเหมือนว่า ArcGIS จะไม่บันทึกรูปร่างใหม่ด้วยการเข้ารหัส UTF-8 สิ่งนี้จะส่งผลกระทบต่อผู้ใช้ที่ต้องการสร้างรูปร่างใหม่จากข้อมูลไม่ใช่ผู้ที่ต้องการแสดงแก้ไขและใช้ในการสร้างแผนที่ วิธีแก้ปัญหาดูเหมือนจะเกี่ยวข้องกับ messing กับรีจิสทรี Windows ของคุณตามรายละเอียดที่นี่: ( http://support.esri.com/cn/knowledgebase/techarticles/detail/21106 ) ฉันไม่ต้องจัดการกับมันเพราะ ArcGIS และ QGIS ของฉันทั้งคู่ดูเหมือนจะจดจำรูปร่างที่ฉันบันทึกไว้โดยใช้กระบวนการข้างต้นอย่างมีความสุขและฉันสามารถปรับเปลี่ยนรูปทรงเรขาคณิตและรายการตารางหรือเพิ่มรูปหลายเหลี่ยมใหม่ด้วยข้อความภาษาอาหรับได้มากขึ้น แม้ว่า Arc จะไม่ต้องการบันทึกรูปร่างแบบใหม่ด้วยการเข้ารหัส UTF-8 แต่ดูเหมือนว่าเต็มใจที่จะอัปเดต / บันทึกใหม่)
ฉันสมมติว่าการทำงานของ LibreOffice นั้นเหมือนกับใน Windows เหมือนกับในคอมพิวเตอร์ของฉัน ฉันใช้ GNU / Linux สำหรับงานส่วนใหญ่ของฉันและบูตเฉพาะ Windows ถ้าฉันต้องใช้ ArcGIS หรือ Autocad สำหรับงานบางอย่างหรืองานอื่นดังนั้นฉันจึงทำการแก้ไขไฟล์. dbf ใน Libreoffice ที่ทำงานบน Fedora ฉันถือว่ามันใช้งานได้เหมือนกันบน Windows แต่ฉันไม่สามารถทดสอบได้โดยไม่ต้องติดตั้ง LibreOffice บนพาร์ติชัน Windows ของฉันและการเชื่อมต่ออินเทอร์เน็ตปัจจุบันของฉันค่อนข้างช้าสำหรับการดาวน์โหลดที่ไม่จำเป็น มีปลั๊กอินสำหรับ Excel ที่ให้คุณบันทึกไฟล์. dbf ในการเข้ารหัสที่เลือก (ตัวอย่างเช่น exceltodbf.sourceforge.net/) แต่ฉันยังไม่ได้ลอง อาจมีวิธีอื่นทั้งหมดในการจัดการและบันทึก. dbf แต่ฉันไม่ได้ตรวจสอบพวกเขาหลังจากหาวิธีง่ายๆในการใช้ LibreOffice
ปัญหาทั้งหมดดูเหมือนว่าจะหลีกเลี่ยงได้หากคุณจ่ายส่วนขยายการทำแผนที่การผลิตใน ArcGIS ซึ่งช่วยให้คุณสามารถแปลง FGDBs เป็นรูปร่างไฟล์ด้วยการเข้ารหัส UTF-8 ได้โดยตรงตามหน้านี้: http://resources.arcgis.com/th/help /main/10.1/index.html#//0103000001m1000000 เหตุใดจึงมีฟังก์ชั่นพื้นฐาน (Unicode อยู่พักหนึ่งแล้วและมีภาษาอื่น ๆ อีกมากมายนอกเหนือจากภาษาอังกฤษ) มีให้สำหรับลูกค้าที่จ่ายเงินเพิ่มเป็นคำถามสำหรับ ESRI