Excel ทำลายอักขระพิเศษเมื่อบันทึกเป็น CSV


21

ฉันกำลังทำงานในโครงการที่ใช้ไฟล์ CSV ที่ลูกค้าให้มาเพื่อเติมฐานข้อมูล ไคลเอนต์คือการสร้างสเปรดชีตจากนั้นบันทึกเป็นไฟล์ CSV ที่จะอัปโหลดซึ่งจะถูกแยกวิเคราะห์ลงในฐานข้อมูล

ปัญหาคือเมื่อใดก็ตามที่ลูกค้าบันทึก excel สเปรดชีตเป็นไฟล์ MS-DOS .csv อักขระพิเศษจำนวนมากจะถูกแปลงเป็นเครื่องหมายคำถาม "?" (สัญลักษณ์เช่น '"/) อย่างไรก็ตามหากเราเปิดไฟล์ CSV และแทนที่ด้วยตนเองหรือไม่ด้วยอักขระที่ถูกต้อง

ปัญหาคือไฟล์ข้อมูลมีขนาดใหญ่มากและเราไม่สามารถทำเช่นนี้ได้อย่างมีเหตุผลดังนั้นฉันจึงหวังว่าจะมีวิธีการบันทึกไว้ เราได้ลองส่งออกเป็น Unicode และ ASCII เพื่อไม่ให้เกิดประโยชน์ เราได้ลองอัปโหลดไปยัง Google เอกสารและประหยัดอีกครั้ง แต่ก็ทำให้ตัวละครเหล่านั้นแตก


2
หากคุณอยู่ใน excel 2007 ในกล่องโต้ตอบบันทึกไฟล์จะมีปุ่มซ้ายค้างไว้เครื่องมือจะเลื่อนลงหากคุณเลือก weboption และบนแท็บการเข้ารหัสคุณสามารถเลือกการเข้ารหัสที่ต้องการได้ ลองดูว่ามันช่วยได้

ตัวอย่างของข้อความนั้นคืออะไร?
enderland

1
ปัญหาไม่สามารถทำซ้ำได้ ตรวจสอบให้แน่ใจว่าข้อมูลเป็นสิ่งที่คุณอธิบายจริง ๆ และไม่ใช่อักขระบางตัวที่ไม่สามารถแสดงในการเข้ารหัส MS-DOS
Jukka K. Korpela

คำตอบ:


11

ตรวจสอบให้แน่ใจว่าคุณเลือกที่จะบันทึกแบบ a CSV (Comma Delimited)และไม่ใช่ a CSV (MS-DOS)เนื่องจาก DOS ไม่รองรับอักขระ UTF-8


6

ฉันพบว่าปัญหาตัวละครที่หายไปเกิดขึ้นเท่านั้น (ในกรณีของฉัน) เมื่อบันทึกจากรูปแบบ xlsx เป็นรูปแบบ csv ฉันพยายามบันทึกไฟล์ xlsx ไปที่ xls ก่อนจากนั้นไปที่ csv มันใช้งานได้จริง


มันไม่ได้ผลสำหรับฉัน ฉันยังรับอยู่เหรอ ในไฟล์ csv
thanos.a

4

วิธีแก้ปัญหาที่เป็นไปได้คือบันทึกเป็นUnicode Text(2007 มี แต่ไม่แน่ใจเกี่ยวกับรุ่นก่อนหน้า) ซึ่งบันทึกเป็นไฟล์ข้อความที่คั่นด้วยแท็บ

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

อย่างไรก็ตามการป้อนข้อมูลของฉันไม่มีแท็บฝังอยู่ภายในแต่ละเซลล์และฉันไม่แน่ใจว่าจะจัดการอย่างไร


3

นี่คือสิ่งที่ใช้ได้กับฉัน:

  1. ทำการแก้ไขข้อมูลใน Excel หรือ CSV
  2. บันทึกไฟล์เป็น Unicode Text
  3. เปิด NOTEPAD
  4. เปิดไฟล์ Unicode ที่คุณเพิ่งบันทึกไว้โดยใช้ NOTEPAD
  5. ใช้เคอร์เซอร์ของคุณเพื่อเน้นพื้นที่ว่างที่มีแท็บ 5a เดียว ใช้ช่องว่างระหว่าง Acquire Id กับประเภทการร้องขอเพราะจะมีแท็บหนึ่งแท็บ!
  6. กด Cnrl-C เพื่อคัดลอกอักขระแท็บ
  7. พิมพ์ Cnlr-H เพื่อเปิดฟังก์ชั่นแทนที่กล่อง
  8. คลิกในกล่องข้อความค้นหาสิ่งที่และพิมพ์ Cnlr-V เพื่อวางแท็บ
  9. คลิกในกล่องแทนที่ด้วยข้อความและพิมพ์เครื่องหมายจุลภาค
  10. คลิกแทนที่เพื่อทดสอบครั้งเดียว ยืนยันว่าแท็บในไฟล์ถูกแทนที่ด้วยเครื่องหมายจุลภาค
  11. คลิกแทนที่ทั้งหมด
  12. คลิกยกเลิก
  13. บันทึกไฟล์และออก
  14. ใน Windows Explorer เปลี่ยนนามสกุลไฟล์เป็น. csv

1
สิ่งนี้ใช้ได้สำหรับฉันโดยใช้ Notepad ++
ChrisB

ใช่ฉันต้องส่งออกเป็น Unicode และค้นหาและแทนที่แท็บเป็นเครื่องหมายจุลภาคด้วย
nilloc

2

ฉันมีปัญหานี้มาระยะหนึ่งแล้วและในที่สุดก็ใช้เวลาพอที่จะคิดออก! ฉันสามารถ (ดูเหมือน) แก้ไขปัญหาด้วยการบันทึกเป็น "Windows Comma Separated (.csv)" ฉันลองจาก. xlsx และ. xls ทั้งสองแปลงไปเป็น. csv ก็ได้ หวังว่านี่จะช่วยได้ - แจ้งให้เราทราบหากมีปัญหาเกิดขึ้นกับวิธีนี้ ฉันจะรายงานกลับหากฉันเห็นอะไรในสองสามสัปดาห์ถัดไป


1
ยินดีต้อนรับสู่ Super User ดีใจที่เห็นคุณกระโดดเข้ามาเพื่อตอบคำถาม
CharlieRB

1

วิธีการแก้:

  1. เปิดไฟล์ CSV ของคุณใน Notepad (คุณจะสังเกตเห็นว่า ANSI) จากนั้นบันทึกเป็น UTF-8 อีกครั้งใน Notepad

  2. จากนั้นการนำเข้าควรทำงาน อย่างไรก็ตามถ้าคุณเปิดมันอีกครั้งใน Excel และเพียงแค่บันทึกมันจะไม่ทำงานเพราะ Excel ไม่สามารถเข้ารหัสใน UTF-8 ได้

  3. ตัวเลือกอื่นคือทำงานกับไฟล์ CSV ของคุณใน www.LibreOffice.org (ฟรี) ซึ่งสามารถเข้ารหัสได้อย่างถูกต้องใน UTF-8 (ฉันไม่ได้ลองด้วยตัวเอง)

ฉันพบปัญหาเดียวกันกับการนำเข้าผลิตภัณฑ์ csv ที่มีเศษส่วนใน WooCommerce ซึ่งได้รับการปฏิเสธเนื่องจาก "?" อักขระผิดพลาด นี่เป็นเพราะไฟล์ CSV ไม่ได้เข้ารหัสใน UTF-8 อย่างไรก็ตามแม้หลังจากบันทึกไฟล์ CSV ใน Excel ด้วยการเข้ารหัส UTF-8 แต่ก็ยังใช้งานไม่ได้

หลังจากเกาผ่านฟอรัมหลายแห่งปรากฏว่าแม้ว่า Excel ให้ตัวเลือกในการเข้ารหัสเป็น UTF-8 - เมื่อบันทึกเป็น CSV, Excel จะแปลงกลับเป็น ANSI โดยอัตโนมัติแม้ว่าคุณจะเลือก UTF-8 ก็ตาม


1
  1. ดาวน์โหลดและติดตั้ง Unicode CSV Addin สำหรับ excel จาก https://github.com/jaimonmathew/Unicode-CSV-Addin
  2. บันทึก csv จากเมนู "Unicode CSV" ใหม่ดังที่แสดงในภาพด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่


1
คุณจะโพสต์ลิงก์ไปยัง Add-in นี้ได้ไหม
Xavier Poinas

ฉันได้อัปเดตคำตอบเพื่อรวมหน้า GitHub แล้ว มีคุณสามารถค้นหาหน้าดาวน์โหลด
thanos.a

0

แม้ฉันประสบปัญหากับตัวอักษรพิเศษในขณะที่ดาวน์โหลดคำภาษาญี่ปุ่นในรูปแบบ. csv อย่างไรก็ตามเมื่อฉันบันทึกไฟล์. csv ในรูปแบบข้อความ (คั่นด้วย Tab) อักขระภาษาญี่ปุ่นที่มีการเติมเต็มอย่างสมบูรณ์ จากนั้นฉันก็คัดลอกข้อมูลจากไฟล์ข้อความและวางในสเปรดชีต ทำงานได้ดี !!!

ขอบคุณ Vaishakh


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

0

พบโซลูชันที่ดีที่สุดเท่าที่เคยมีมา: http://woshka.com/blog/microsoft/microsoft-excel/solve-the-problem-saving-excel-csv-format-with-utf-8-unicode-encoding.html

จากลิงค์:

1- คลิกที่เมนูเริ่มต้น

แผงควบคุม 2-Select

3- ค้นหาตัวเลือกภูมิภาคและภาษาในโหมดคลาสสิคหรือพิมพ์ชื่อบนแถบค้นหาที่ด้านบนขวาของหน้าต่างแผงควบคุม

4-Click บนแท็บขั้นสูงแล้วคลิก locales

5 คลิกที่เปอร์เซียหรืออาหรับหรือโปรแกรมเข้ารหัส UTF-08 ที่คุณต้องการและบันทึกด้วย Excel ลงใน CSV


woshka.comไม่ใช่ URL ที่ถูกต้องอีกต่อไปแล้วเป็นโดเมนที่พักไว้ในขณะนี้
Craig London

0

สำหรับ™ฉันพบวิธีแก้ปัญหา ในไฟล์. xlsx ให้แทนที่ "™" ด้วย "& tr-ade;" ทั้งหมด ลบ - จากการแทนที่ด้วย บันทึกไฟล์เป็น. csv และทำทั้งหมด หวังว่ามันจะได้ผลสำหรับคุณ


0

สำหรับคอมพิวเตอร์ Mac นี่คือสิ่งที่ใช้ได้ผลสำหรับฉัน

บน excel เลือกบันทึกเป็นแล้วเลือกรายการจุลภาคคั่นด้วยหน้าต่าง (CSV)

มันใช้งานได้ !!!


0

บันทึกเป็น unicode เปลี่ยนชื่อไฟล์ unicode เป็น. csv ( https://www.youtube.com/watch?v=1VP8__shxTg )


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