# VCF to CSV Converter

> 把手機匯出的 VCF 通訊錄轉成 Excel 打得開的 CSV，也能把 CSV 轉回 vCard。支援 vCard 2.1、3.0、4.0，Big5 與 Shift_JIS 亂碼也救得回來，全程在瀏覽器完成。

- URL: https://bytescope.dev/zh-Hant/vcf-to-csv/
- Locale: zh-Hant · Also: [en](https://bytescope.dev/en/vcf-to-csv.md) · [ja](https://bytescope.dev/ja/vcf-to-csv.md)
- Runs: 通訊錄就在你的電腦上、由這個頁面讀取。姓名、電話、地址都在頁面裡解析，什麼都不會送出去——不上傳、不用帳號、伺服器上也不會有副本。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

`.vcf` 是手機、Google 聯絡人或 Outlook 在你匯出通訊錄時給你的檔案——偏偏試算表軟體就是打不開它。把檔案丟進來，所有聯絡人都會直接在頁面上解析：姓名、電話、Email、地址、公司、生日、備註，先排成一張看得到的表格，確認沒問題再匯出。接著下載 CSV，用 Excel、Numbers 或 Google 試算表直接開。

你的通訊錄不會離開這台電腦。這正是不去那些「請上傳檔案」網站、改在這裡轉的理由：通訊錄大概是多數人手上最敏感的一份資料，只為了換個檔案格式就把它貼到陌生人的伺服器上，實在不划算。解析、預覽、匯出全部在瀏覽器裡完成，什麼都不會送出去——根本沒有伺服器可以送。

那些會弄壞其他轉換器的匯出檔，這裡都吃得下。vCard 2.1、3.0、4.0 全部支援，包括 2.1 的 quoted-printable 編碼——舊手機匯出的中文名字會變成 `=A4=FB=A5=CD` 這種東西，原因就在這裡。用 Big5、GBK、Shift_JIS 或 EUC-KR 存的檔案會自動偵測，猜錯了也能手動切換，表格會跟著即時重讀。每一條解析警告都附上出錯的行號，只讀到一半的卡片看得見，不會默默消失。

反方向也有：丟一份 CSV 進來，拿回一個 `.vcf`，直接匯入手機或 Google 聯絡人。欄位標題會跟這個工具匯出的欄名比對，認不得的欄位會保留成自訂的 `X-` 屬性，而不是直接丟掉。挑好 CSV 要哪些欄位、讓 UTF-8 BOM 選項保持開啟（Excel 才能正確顯示非英文的名字），就大功告成了。

## Limits

Does not merge duplicate contacts or import into a contacts app; it converts vCard to CSV.

## FAQ

### 我的聯絡人會被上傳到某個地方嗎？

不會。檔案由你電腦上的瀏覽器讀取、在頁面裡解析，CSV 也在本機產生。沒有東西送到伺服器、不需要帳號，關掉分頁之後任何地方都不會留下副本。

### 怎麼用 Excel 開 VCF 檔？

Excel 根本讀不懂 vCard——這就是檔案看起來像亂碼、或乾脆打不開的原因。在這裡轉成 CSV、BOM 選項保持開啟，然後對結果按兩下：Excel 會把它當一般試算表打開，一列一個聯絡人。

### 為什麼中文或帶重音符號的名字在 Excel 裡變成問號？

除非檔案開頭有 UTF-8 BOM，否則 Excel 會假設 CSV 用的是 Windows 的本機編碼。BOM 選項預設開啟，就是為了這件事。如果還沒匯出名字就已經不對，來源檔案八成不是 UTF-8——在檔案那一列換個字元集，預覽就會自己修正。

### 支援哪些 vCard 版本？

2.1、3.0、4.0，混用的檔案也可以。各版本的規則分開遵守而不是取平均：3.0 和 4.0 的反斜線跳脫會還原，2.1 沒有這回事就保持原樣，而 2.1 的 `ENCODING=QUOTED-PRINTABLE` 值會用卡片指定的字元集解碼。

### 一個聯絡人有好幾組電話或 Email 時會怎樣？

會合併進同一格，用分號加空格隔開，號碼一個都不會掉，列數也跟聯絡人數一致。地址也用同樣方式攤平，從街道一路排到國家。

### 可以把 CSV 轉回 .vcf 嗎？

可以——頁面最下面的面板就是做這件事的，輸出 vCard 3.0 或 4.0。跟這個工具自己的欄名相符的標題會直接對回 vCard 屬性；其他欄位保留成自訂的 `X-` 屬性，來回轉一趟也不會偷偷弄丟你多出來的欄位。

### 丟進來的檔案根本不是 vCard 時，工具會怎麼做？

會明確講出問題在哪，而不是顯示一張空表。0 位元組的檔案、丟錯面板的 CSV、整份找不到 `BEGIN:VCARD` 行的檔案、用選定字元集解不開的檔案，各自有各自的訊息——而且載入失敗會清掉前一次的結果，不會把舊的列留在畫面上。

### 聯絡人卡片裡的照片轉得過去嗎？

轉不過去。CSV 的儲存格塞不下內嵌的 JPEG，所以照片會被讀取但不會匯出；CSV 只帶文字欄位。原本的 `.vcf` 裡照片還在，在意的話把原檔留好。

## Related tools

- [SQLite Viewer](https://bytescope.dev/zh-Hant/sqlite-viewer.md) — 直接打開 .db 或 .sqlite 檔瀏覽裡面的資料表，什麼都不用安裝。
- [Subtitle Converter](https://bytescope.dev/zh-Hant/subtitle-converter.md) — 轉換字幕格式（SRT、VTT、ASS、SBV），並修復 BIG5 或 Shift-JIS 亂碼。
- [File Type Identifier](https://bytescope.dev/zh-Hant/file-type.md) — 從 magic bytes 判斷檔案真正的格式，不管副檔名怎麼寫。
