วิธีแปลง TSV เป็น CSV: คู่มือฉบับสมบูรณ์
เรียนรู้วิธีแปลงไฟล์ TSV เป็น CSV ให้ถูกต้องตามมาตรฐาน RFC-4180 ด้วย TSV to CSV Converter ฟรี ทำงานบน browser 100% ไม่ต้อง upload
Table of Contents
TSV (Tab-Separated Values) และ CSV (Comma-Separated Values) คือสองรูปแบบของไฟล์ข้อมูลแบบตารางที่เจอบ่อยที่สุดในงาน data ไม่ว่าจะเป็น export จาก database, log file, หรือรายงานจากระบบ analytics ทั้งคู่ดูเผิน ๆ เหมือนกันมาก แค่เปลี่ยนตัวคั่นจาก tab เป็น comma แต่ในทางปฏิบัติ การแปลงแบบ "find & replace tab ด้วย comma" ตรง ๆ มักทำให้ข้อมูลพังเสมอ เพราะข้อมูลจริงมีทั้ง comma ในข้อความ, ช่องที่มี quote, หรือแม้แต่ newline ซ่อนอยู่ใน field
บทความนี้จะอธิบายวิธีแปลง TSV เป็น CSV อย่างถูกต้องตามมาตรฐาน RFC-4180 พร้อมแนะนำ TSV to CSV Converter เครื่องมือฟรีที่ทำงานบน browser 100% ไม่ต้อง upload ไฟล์ขึ้น server รองรับ custom delimiter, quoting rules ครบถ้วน และ parse ข้อมูลแบบ RFC-4180-grade ตั้งแต่ field ที่มี quote ครอบ, delimiter ที่ฝังอยู่ใน quote, ไปจนถึง newline ภายใน field
ไม่ว่าคุณจะเป็น data engineer ที่ต้องส่งข้อมูลต่อให้ pipeline, นักวิเคราะห์ที่เปิดไฟล์ใน Excel แล้วคอลัมน์เพี้ยน หรือ developer ที่ต้องแปลง output จาก script หนึ่งไปให้อีก script หนึ่ง คู่มือนี้ครอบคลุมทุกอย่างที่คุณต้องรู้ ตั้งแต่พื้นฐานของ delimiter ไปจนถึง best practices ที่ใช้ในงาน production จริง
ทำไม่ต้องใช้ TSV to CSV Converter?
การแปลง TSV เป็น CSV ดูเป็นงานง่าย แต่มีรายละเอียดที่เครื่องมือทั่วไปจัดการไม่ได้ นี่คือเหตุผลที่ควรใช้เครื่องมือที่ออกแบบมาโดยเฉพาะ:
- Parser ระดับ RFC-4180 — ไม่ใช่แค่แทันที่ tab ด้วย comma แต่ parse โครงสร้างข้อมูลจริง รองรับ quoted fields, delimiter และ newline ที่ฝังอยู่ใน quote, doubled quotes ("") รวมถึง line ending ทุกแบบทั้ง \n, \r\n และ \r ทำให้ข้อมูลไม่เพี้ยนแม้มีข้อความซับซ้อน
- เลือก output delimiter ได้เอง — นอกจาก comma มาตรฐาน ยังเลือก semicolon (;), pipe (|), tab หรืออักขระ custom ใดก็ได้ เหมาะกับระบบปลายทางที่ต้องการ separator เฉพาะ
- ควบคุม quoting ได้ 2 โหมด — โหมด Minimal ใส่ quote เฉพาะ field ที่จำเป็น และโหมด Quote every field ที่ครอบ quote ทุก field เพื่อความปลอดภัยสูงสุดเมื่อนำเข้าระบบที่ parse เข้มงวด
- เห็นผลทันทีด้วย live preview — แสดงจำนวนแถวและคอลัมน์แบบ real-time ก่อน copy หรือ download ช่วยตรวจว่าโครงสร้างข้อมูลถูกต้องตั้งแต่ก่อนนำไฟล์ไปใช้
- ความเป็นส่วนตัว 100% — การแปลงทั้งหมดเกิดขึ้นใน browser ของคุณ ไม่มีการ upload ไฟล์ขึ้น server ไม่มีใครเห็นข้อมูลของคุณ และทำงานแบบ offline ได้ด้วย
- ฟรี ไม่ต้องติดตั้ง — ไม่ต้องลง software ไม่ต้องสมัครบัญชี เปิดหน้าเว็บแล้ววางข้อมูลแปลงได้ทันที ใช้ได้ทั้งบน desktop และ mobile
ฟีเจอร์เด่น
| ฟีเจอร์ | รายละเอียด |
|---|---|
| RFC-4180-grade parser | จัดการ quoted fields, embedded delimiters/newlines ใน quote, doubled quotes ("") และ line endings ทุกแบบ (\n, \r\n, \r) |
| Output delimiter | Comma (,), Semicolon (;), Pipe (|), Tab หรืออักขระ custom ใดก็ได้ |
| Quoting modes | Minimal (ใส่ quote เฉพาะเมื่อจำเป็น) หรือ Quote every field (ครอบทุก field) |
| Live preview | แสดงจำนวนแถวและคอลัมน์แบบ real-time ขณะพิมพ์หรือวางข้อมูล |
| Copy & Download | คัดลอกผลลัพธ์ไป clipboard หรือ download เป็นไฟล์ได้ทันที |
| 100% client-side | ประมวลผลใน browser ทั้งหมด ไม่ upload ไม่พึ่ง server ใช้งาน offline ได้ |
รายละเอียดฟีเจอร์ที่ควรรู้เพิ่มเติม:
- Parser ที่ไว้ใจได้กับข้อมูลสกปรก — ข้อมูลจริงจาก log หรือ database export มักมี quote ไม่ครบบ้าง มี comma ในข้อความบ้าง parser ของเครื่องมือนี้เขียนตาม spec ของ RFC-4180 จึงแยก field ถูกต้องแม้ข้อมูลต้นทางจะซับซ้อน เช่น field "Smith, John" จะถูกเก็บเป็นข้อมูลเดียวไม่ถูกแยกเป็นสองคอลัมน์
- Quoting แบบ Minimal ลดขนาดไฟล์ — โหมด Minimal จะใส่ quote เฉพาะ field ที่มี delimiter, quote หรือ newline อยู่ข้างในเท่านั้น ทำให้ไฟล์ CSV ที่ได้มีขนาดเล็กและอ่านง่าย ในขณะที่โหมด Quote every field เหมาะกับ workflow ที่ต้องการ format สม่ำเสมอเพื่อ diff หรือ import เข้าระบบที่คาดหวัง quote ทุกช่อง
- row & column count คือ safety net — ก่อนนำไฟล์ไปใช้จริง แค่ดูว่าจำนวนแถวและคอลัมน์ใน preview ตรงกับที่คาดไว้ ก็จับปัญหาโครงสร้าง เช่น คอลัมน์หายหรือแถวถูกตัด ได้ทันทีโดยไม่ต้องเปิดไฟล์ในโปรแกรมอื่น
วิธีแปลง TSV เป็น CSV
ทำตาม 5 ขั้นตอนนี้ แปลงไฟล์เสร็จในไม่ถึงหนึ่งนาที:
- เปิดเครื่องมือ — เข้าไปที่ TSV to CSV Converter บน browser ใดก็ได้ ไม่ต้องสมัครบัญชี ไม่ต้องติดตั้งอะไรเพิ่ม
- วางข้อมูล TSV — copy ข้อมูลจากไฟล์ .tsv, spreadsheet, หรือ output ของ script แล้ววางลงในช่อง input หรือจะพิมพ์ข้อมูลโดยตรงก็ได้ ผลลัพธ์จะเริ่มคำนวณทันที
- เลือก delimiter และ quoting mode — เลือกตัวคั่นสำหรับ output (comma, semicolon, pipe, tab หรือ custom) แล้วเลือก quoting mode ระหว่าง Minimal หรือ Quote every field ตามที่ระบบปลายทางต้องการ
- ตรวจสอบ live preview — ดูจำนวนแถวและคอลัมน์ที่แสดงใต้ผลลัพธ์ว่าตรงกับข้อมูลต้นทาง ถ้าคอลัมน์น้อยกว่าที่คาด แสดงว่าข้อมูลต้นฉบับอาจมี quote ไม่ครบ ให้แก้ที่ต้นทางก่อนแปลง
- Copy หรือ download ผลลัพธ์ — กดปุ่ม copy to clipboard เพื่อนำไปวางใน script หรือ spreadsheet ได้ทันที หรือ download เป็นไฟล์ CSV เพื่อนำไปใช้กับเครื่องมืออื่น
เข้าใจ Delimiter และมาตรฐาน RFC-4180
ทำไม่ tab ถึงทำให้ CSV import พัง
TSV ใช้ tab (\t) เป็นตัวคั่น ซึ่งปลอดภัยกว่า comma ในแง่ที่ข้อความทั่วไปแทบไม่มีการพิมพ์ tab ปนอยู่เลย ทำให้ไฟล์ TSV มัก "ดู" สะอาดกว่าโดยไม่ต้องมี quote แต่ปัญหาคือหลายระบบไม่รองรับ TSV โดยตรง — Excel บางเวอร์ชัน, API บางตัว, และ library บางตัวคาดหวัง CSV ที่มี comma เท่านั้น
ถ้าแปลงแบบ naive ด้วยการแทันที่ tab ทุกตัวด้วย comma จะเกิดปัญหาทันทีเมื่อ field นั้นมี comma อยู่แล้ว เช่น ข้อมูล Bangkok, Thailand ในหนึ่งคอลัมน์ พอกลายเป็น CSV จะถูก parser ปลายทางเข้าใจผิดว่าเป็นสองคอลัมน์ ผลคือคอลัมน์เลื่อน ข้อมูลผิดแถว หรือ import ล้มเหลวทั้งไฟล์
กฎ quoting ของ RFC-4180
มาตรฐาน RFC-4180 กำหนดกฎชัดเจนสำหรับ CSV ที่ถูกต้อง:
- field ที่มี delimiter, quote หรือ newline อยู่ข้างใน ต้องถูกครอบด้วย double quote (")
- double quote ที่อยู่ภายใน quoted field ต้อง escape ด้วยการเขียนซ้ำเป็น ""
- ตัวอย่าง: ข้อมูล He said "hello" จะเขียนเป็น "He said ""hello"""
- line ending มาตรฐานคือ CRLF (\r\n) แต่ parser ที่ดีควรรับ \n และ \r ได้ด้วย
เครื่องมือนี้ทำทั้งฝั่ง parse (อ่าน TSV ต้นทาง) และฝั่ง generate (เขียน CSV ปลายทาง) ตามกฎเหล่านี้ ทำให้ผลลัพธ์ถูกต้องตาม spec เสมอ ไม่ว่าข้อมูลต้นทางจะซับซ้อนแค่ไหน
เมื่อไหร่ควรใช้ semicolon หรือ pipe
comma ไม่ใช่คำตอบเดียวเสมอไป:
- Semicolon (;) — เป็น delimiter มาตรฐานของ CSV ในหลายประเทศแถบยุโรป เพราะใช้ comma เป็นเครื่องหมายทศนิยม (เช่น 1,5 แทน 1.5) ถ้าไฟล์ของคุณต้องเปิดใน Excel locale เหล่านี้ semicolon คือตัวเลือกที่ปลอดภัย
- Pipe (|) — พบได้บ่อยในงาน data engineering และ log processing เพราะแทบไม่ปรากฏในข้อความทั่วไปเลย ลดโอกาสชนกับข้อมูลโดยไม่ต้อง quote ให้ยุ่งยาก
- Custom character — บางระบบ legacy ต้องการอักขระเฉพาะ เช่น \x01 ใน ecosystem ของ Hive การรองรับ custom delimiter ทำให้ไม่ต้องเขียน script แปลงเอง
ปัญหา locale ของ Excel
หนึ่งในกับดักที่พบบ่อยที่สุด: เปิดไฟล์ CSV ใน Excel แล้วข้อมูลทั้งหมดไปกองอยู่ในคอลัมน์เดียว สาเหตุคือ Excel ใช้ delimiter ตาม regional setting ของเครื่อง — Excel เวอร์ชันไทย/ยุโรปหลาย locale คาดหวัง semicolon ไม่ใช่ comma ดังนั้นถ้าต้องส่งไฟล์ให้ทีมที่ใช้ locale ต่างกัน การเลือก delimiter ให้ตรงกับเครื่องผู้รับ (หรือใช้ semicolon เป็นค่ากลาง) จะช่วยชีวิตคุณได้มาก
use cases ในงานจริง
Export ข้อมูลจาก database และ log
คำสั่ง SQL ส่วนใหญ่ export ผลลัพธ์เป็น TSV ได้โดยตรง (เช่น psql ของ PostgreSQL หรือ mysql --batch) และ log file จำนวนมากก็ใช้ tab คั่น field เพราะเขียนง่ายและเร็ว แต่เมื่อนำเข้าเครื่องมือวิเคราะห์หรือ BI tool ส่วนใหญ่คาดหวัง CSV การแปลงด้วยเครื่องมือนี้ช่วยจัดการ field ที่มี comma หรือ quote ปนอยู่ให้ถูกต้องตาม RFC-4180 โดยไม่ต้องเขียน Python script สั้น ๆ เองทุกครั้ง
งาน spreadsheet กับ locale ของ Excel
เมื่อต้องส่งรายงานให้เพื่อนร่วมทีมที่เปิด Excel คนละ locale การแปลง TSV เป็น CSV ด้วย delimiter ที่เหมาะสม (comma สำหรับ US/UK, semicolon สำหรับยุโรปหลายประเทศ) พร้อม quoting mode ที่ถูกต้อง จะทำให้ไฟล์เปิดมาแล้วคอลัมน์ครบทุกช่อง ไม่ต้องเสียเวลาใช้ Text Import Wizard ทีละไฟล์
ส่งต่อข้อมูลระหว่าง script และ pipeline
ใน pipeline แบบ Unix ที่ command หนึ่ง output เป็น TSV แต่ command ถัดไปคาดหวัง CSV (เช่น csvkit, pandas.read_csv ที่ config มาสำหรับ comma) การแปลงตรงกลางด้วย delimiter และ quoting ที่ตรง spec ช่วยให้แต่ละ stage ต่อกันได้สะอาด โดยไม่ต้องแก้ parser ของ script ปลายทาง และเพราะเครื่องมือนี้ทำงานใน browser ทั้งหมด จึงเหมาะกับข้อมูลที่ไม่ควรออกนอกเครื่อง เช่น ข้อมูลที่มี PII หรือความลับทางการค้า
Migration ข้อมูลระหว่างระบบ
ตอนย้ายระบบเก่าไประบบใหม่ บ่อยครั้งที่ระบบเก่า export ได้แค่ TSV แต่ระบบใหม่ import ได้แค่ CSV ที่มี quoting เข้มงวด การใช้โหมด Quote every field ร่วมกับ delimiter ที่ระบบใหม่ต้องการ ทำให้ไฟล์ผ่าน validation ของระบบปลายทางได้โดยไม่ต้องแก้ code ฝั่ง import
Best Practices
- ตรวจ row & column count ทุกครั้งก่อนนำไฟล์ไปใช้ — ถ้าจำนวนคอลัมน์ใน preview ไม่ตรงกับต้นทาง แสดงว่ามี quote ไม่ครบหรือ delimiter ชนกับข้อมูล ให้แก้ที่ข้อมูลต้นทางก่อน อย่าฝืนแปลงต่อ
- เลือก quoting mode ตามระบบปลายทาง — ใช้ Minimal สำหรับงานทั่วไปและไฟล์ขนาดเล็ก ใช้ Quote every field เมื่อ import เข้าระบบที่ parse เข้มงวด หรือเมื่อต้องการให้ format สม่ำเสมอเพื่อ diff
- จับคู่ delimiter กับ locale ของผู้รับ — ส่งให้ทีมยุโรปพิจารณา semicolon, งาน data engineering พิจารณา pipe, และใช้ comma เป็นค่าเริ่มต้นเมื่อไม่แน่ใจ
- ระวัง newline ใน field — ข้อมูลที่มีหลายบรรทัดในช่องเดียว (เช่น note หรือ comment) ต้องถูก quote อย่างถูกต้องเสมอ มิฉะนั้นแถวจะถูกตัด parser ของเครื่องมือนี้จัดการให้อัตโนมัติ แต่ควรตรวจผลลัพธ์ด้วยตาเมื่อข้อมูลมี field ลักษณะนี้เยอะ
- เก็บไฟล์ต้นฉบับ TSV ไว้เสมอ — การแปลงเป็นแบบ one-way ในแง่ที่การแปลงกลับอาจไม่สมบูรณ์ 100% หากมีข้อสงสัย ให้แปลงใหม่จากต้นฉบับแทนการแก้ไฟล์ CSV ด้วยมือ
- ใช้ประโยชน์จากการทำงาน offline — เพราะทุกอย่างเกิดใน browser คุณแปลงข้อมูลความลับสูงได้โดยไม่ต้องกังวลเรื่อง data privacy และทำงานต่อได้แม้ไม่มีอินเทอร์เน็ต
เริ่มแปลงข้อมูล TSV ของคุณวันนี้
ไม่ต้องเสียเวลาเขียน script หรือเสี่ยงกับ find & replace ที่ทำให้ข้อมูลเพี้ยน เปิด TSV to CSV Converter วางข้อมูล เลือก delimiter กับ quoting mode แล้ว้ไดไ้ฟล CSV ที่ถูก ต้องตาม RFC-4180 ภายในไม่กี่วินาที ฟร ไม่ต้องสมคัร และข้อมูลของคณไม่อ่อกจากเครื่อง เพราะทุกอย่างประมวลผลใน browser 100%
เครื่องมือที่เกี่ยวข้อง
- CSV to JSON Converter — แปลงไฟล์ CSV เป็นโครงสร้าง JSON สำหรับใช้กับ API หรือเว็บแอป รองรับ header row และ nested structure เหมาะกับ developer ที่ต้องเปลี่ยนข้อมูลตารางเป็น object
- JSON to CSV Converter — แปลงข้อมูล JSON กลับเป็นตาราง CSV สำหรับเปิดใน spreadsheet หรือนำเข้าเครื่องมือวิเคราะห์ ทำงานแบบ client-side ทั้งหมดเหมือนเครื่องมือในตระกูลเดียวกัน
- List Delimiter Converter — เปลี่ยนตัวคั่นของรายการข้อความระหว่าง comma, semicolon, pipe, tab หรือ newline เหมาะกับงานจัดรูปแบบ list แบบเร็ว ๆ ที่ไม่ต้องการ parser เต็มรูปแบบ
ขอให้สนุกกับการแปลงข้อมูล!