iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0
自我挑戰組

30 天養大一個開源專案:baodao-skill 從零開始系列 第 11

【Day 11】寄信到台灣:郵遞區號、Big5,和 Windows 才能查的 3+3

  • 分享至 

  • xImage
  •  

先講結論:baodao-skill 現在查得到郵遞區號,還會把中文地址翻成英文。postal-address 用中華郵政官網下載區的公開對照表,免金鑰免登入,2026-09-12 全檔實測可連。

「大安區的郵遞區號是什麼」「中正路的英文怎麼寫」這種問題,答案就在郵局下載區躺著:3 碼郵遞區號一覽表、縣市鄉鎮中英對照、村里中英對照、路街中英對照,四個檔案搞定。路街檔 30,031 列、村里檔 8,369 列,全檔掃過一遍,格式良好,沒有缺譯沒有亂碼——官方的資料品質其實很好。

但檔案拿到手的第一個動作就決定生死:編碼。TXT 檔是 Big5,要先 iconv -f big5 -t utf-8 才能讀;XML 檔是 UTF-8,直接讀,千萬不要過 iconv,過了就轉壞。同一個下載區,兩種編碼並存,分工規則只好寫進 skill:.TXT 要轉,.xml 不要碰。這就是 2026 年的台灣政府資料,Big5 還活在生產環境裡。

轉完之後就很順了。3 碼郵遞區號:台北市大安區 106。路名拼音:一工路是 Yigong Rd.、一心二路是 Yixin 2nd Rd.。組英文地址時順序反轉,英文由小到大:路街拼音、鄉鎮拼音、縣市拼音、郵遞區號,最後 Taiwan (R.O.C.)。

掃全檔還抓到幾個小個性:中文路名不含縣市前綴,全台灣有 21 組同名路街(最多的當然是中正路),只給路名要提醒使用者可能不只一個縣市。村里檔有 220 列英文用彎撇號 U+2019(San’an Vil.),路街檔有 2 列混了全形數字(Nanshi Sec. 1)。不影響查詢,但寫進文件讓下一個人不用重新踩。

最大的限制要誠實講:完整的 3+3 六碼投遞區段,官方只給 Windows 版「3+3 郵遞區號應用系統」(rar 安裝檔)和要申請的 Web Service,沒有免登入的機讀全表。需要六碼的時候,skill 的規則是導去官方查詢頁,絕對不自己猜後三碼——郵遞區號猜錯,信就真的寄丟了。

這個 skill 是「實測過才收錄」的又一次勝利:文件不會告訴你哪個檔是 Big5,curl 和 iconv 會。


上一篇
【Day 10】台股行情不用 key:兩個證交所主機,和慢半天的 openapi
下一篇
【Day 12】YouBike 全台即時站況:一支統一 feed、台臺之亂,和欄位命名的兩派鬥爭
系列文
30 天養大一個開源專案:baodao-skill 從零開始15
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言