蘇州碼子

蘇州碼子，又稱花碼、草碼、商碼、柴碼等，簡稱碼子，福建寫作碼子和豬屎數，臺灣寫作菁仔碼，省港稱數簿字，是種曾在中國民間流行的數字，源於蘇州，由算籌演變而來。因為蘇州碼子易於學習，書寫便捷，一串數字能連筆寫出，而且寫法如同珠算，可以配合算盤使用，曾經廣泛使用於商業中，在賬簿和發票等處均有使用。蘇州碼子現今於中國大陸及臺灣已幾近絕跡，僅在港澳地區的菜市場、海鮮檔、舊式茶餐廳餐牌及中藥房偶然可見。

## 歷史

蘇州碼子脫胎於算籌。一些類似的符號已經可以見於敦煌文書，但和後世柴碼還有一定距離，如在敦煌文書算經和九九表（如S.930v.、P.3349等）中，「〦」或「丅」表示六，「〧」表示七，一到五條豎表示數字一至五等，此外在黑水城出土的西夏借糧契約和元代賦稅文書中，也有符號記數的例子，因此有人認為，這類記數符號在唐、五代時期敦煌地區的使用已較廣泛，它們與黑水城文書及宋代司馬光《潛虛》中的記數符號存在相關性。

花碼由南宋時期從算籌分化。同算籌一樣，花碼是十進位制計數系統。有別於算籌常用於數學和工程上，花碼通常用在商業領域裡，主要用途是速記。明萬曆年間刊行的徐心魯《盤珠算法》（1573年）中稱之為「馬子暗數」（其中5（〥）記作類似「孑」的形狀），程大位的《算法統宗》（1592年）介紹了蘇州碼子，稱之為「暗馬式」和「暗子馬數」。蘇州碼子從明代起，為蘇、杭一帶採用，在民間流行了數百年後，最終為阿拉伯數字取代其地位。

明清的徽州文書中，也有許多使用「柴碼」的。近代時，電報的數碼也有使用柴碼抄錄的。自強軍及之後的北洋陸軍士兵領章上分別使用了羅馬數字、阿拉伯數字和蘇州碼子進行編號，如第五團第二營，記在右領章上，記作「V2」，而人員編碼記在左領章上，如第三百八十九號士兵記作「〣〨〩」。有初步研究發現，海南民間目前至少在金石、更路簿、記帳簿、家譜、護照等五類物品中發現蘇州碼子約700處，分別用於記錄水程、水深或記帳、記時等，用途廣泛，最早為1852年（蘭美村宗祠），最晚為1950年（海口鹽灶路北帝廟）。海南漁民使用的《更路簿》中，蘇州碼子被用於記錄航程「更」數和海域水深。但現代有誤將碑上的蘇州碼子認作是「黎母數字」者。

台灣稱之為菁仔碼（「菁仔」是指未加工的檳榔嫩果）、臺灣碼、番薯碼、擔柴碼。

在1990年代之前，香港公共小型巴士普遍以此標示車資價錢，現時仍有少數路線仍以此標價。香港小學數學課程中，將之稱為中國古代數字或中國數碼，並於小學五年級授予有關用法。

## 符號

花碼使用特別符號來代表數字，符號是從南宋記錄算籌的數碼演變而來。

五至九的花碼，是零至四的花碼上各加一筆，代表五的短豎（參考算籌橫式數碼），也就是短豎加「〇」是「〥」（五），短豎加「一」是「〦」（六），短豎加「二」是「〧」（七），短豎加「三」是「〨」（八），短豎加「〤」（四）是「〩」（九）。

其中，五和九的花碼「〥」「〩」變了形狀，以方便書寫。因為傳統畫圈是順時針方向從右到左，花碼「〥」應於右上角收筆。注意數字六至八的花碼「〦」「〧」「〨」，書寫時第一筆應為短豎，不應寫作斜點（即使偶有為之），從而避免誤認為「二」「三」。

一二三的花碼都是豎筆，為免這三個花碼相連時混淆，用橫筆「一二三」與豎筆花碼相間，第一個數字用豎筆，第二個用橫筆，第三個用豎筆，如此類推。比如，「二一」花碼作「〢一」，不用「〢〡」，避免與「〣」混淆，又如「四三一二」作「〤〣一〢」，「一九二二」作「〡〩〢二」。

數字｜〇｜一｜二｜三｜四｜五｜六｜七｜八｜九

花碼｜〇｜〡一｜〢二｜〣三｜〤｜〥｜〦｜〧｜〨｜〩

算籌橫式

算籌直式

## 記數法

蘇州碼子是進位制記數系統，以位置表示大小。記數符號寫成兩行，首行記數值，第二行記量級和計量單位。

例一：

- 〤〇〢二

第一行記載的是數目之數值，「〤〇〢二」代表4.022。第二行記載數目之數量級和計量單位。此處數量級是十，代表第一行的第一位數字之數量級是十位。換言之，這數字是「4.022 × 10元 = 40.22元」，或「四十元二角二分」。

例二：

- 〨〥

第一行「〨〥」代表8.5，第二行記數量級為千，表示第一行第一位數字的數量級是千位，因此這數字是「8.5 × 1000斤」，等於「8500斤」。因為數量級已經表明，故此可以不寫末尾的「〇」，正如數目的讀法「八千五百」也省略末尾的零，甚至可直接讀作「八千五」。

如果數量級是一，將數量級省去。如果數量級是萬，為求簡便，用筆畫簡單的俗字「萬」表示，不用「萬」。同樣地，當計量單位是「毫」時，用「毛」字代替，還有一些計量單位也有簡筆記法。例如：

例三：

- 〣〤〢

例四：

- 〩〨

例三是「34200元」，例四是「9.8毫」。

如果第一行只有一個數字，可以選擇將數量級記在右旁；當數量級為一時，可以將計量單位記在右旁。

例五：

- 〤十

例六：

- 〧尺

例五「40元」只有一個數字「〤」，將「十」字記在右旁（也可以在「〤」後添上「〇」，下行寫「十元」）：〤〇。例六「7尺」只有一個個位數字，將單位「尺」記在右旁。

雖然傳統漢文是直行書寫，但花碼不用直寫，而是沿用了算籌由左至右的橫向記法，與算盤相同。因此，很多時候花碼寫得窄長而緊密。

此計數系統與科學記數法很相近。

「10元」寫法，商用可簡作「十元」，一般寫法是上行寫「〡〇」，下行對應寫作「十元」，即：〡〇。

## 其它地域的使用

蘇州碼子也在江戶時代曾傳至日本，被稱為「阿蘭陀符帳」（《算用萬取集日記》），後簡稱「符帳」，如明治維新後的1893年出版的《諸商人通用符帳》中，在藥商一項中有此種數碼，其中5記作類似「子」的形狀。

在琉球，蘇州碼子被稱作「蘇州碼」（すうちうま、スーチューマ），有時也用漢字表記為「琉球數碼」、「數籌碼數珠碼」等，主要在帳簿中使用。1879年日本吞併琉球後，蘇州碼的使用逐漸消失。在沖繩語的俗語中，「蘇州碼話」（スーチューマー グトゥ）意為「不能理解的話」、「寫得不好看的文字」。

英國廣播公司的電視連續劇《新世紀福爾摩斯》，將蘇州碼子充作該劇首季第2集〈不識貨的行員〉中的神秘符號，但是誤以豎寫表達（例如：劇集中路邊小販的價錢牌用豎寫，實際只用橫寫）。

## 圖集

- 宋代司馬光《潛虛》中的記數符號，六用「〦」或「丅」表示，與現在流行的柴碼不同的是，符號「〤」用於表示五而不是四
- 明萬曆刊本徐心魯《盤珠算法》（1573年）最後一頁，上面的「馬子暗數」即蘇州碼子。其中5（〥）記作類似「孑」的形狀
- page=30
- page=73
- 香港街市以蘇州碼子此標示的價錢（左：每兩12元；右：每兩15元）
- 香港蓮香居餐牌用蘇州碼子標示價錢。酒樓職員稱以往酒樓餐牌都用毛筆寫，寫阿拉伯數字不好看，必須寫蘇州碼子才能寫出書法美感。
- 北京民國時期的門牌，門牌號阿拉伯數字和蘇州碼子並用。圖中北京魯迅舊居的老門牌，上方的阿拉伯數字21，與下方的蘇州碼子「〢一」相對應。
- 京張鐵路曾使用蘇州碼子標記里程碑，攝於青龍橋站

## 資訊化

### Unicode編碼

蘇州碼子一至九的符號已經被加入Unicode，字符碼位從U+3021到U+3029。

數字｜蘇州碼子｜替代使用的漢字

字符｜碼位｜字符｜碼位

0｜〇｜U+3007

1｜〡｜U+3021｜一｜U+4E00

2｜〢｜U+3022｜二｜U+4E8C

3｜〣｜U+3023｜三｜U+4E09

4｜〤｜U+3024

5｜〥｜U+3025

6｜〦｜U+3026

7｜〧｜U+3027

8｜〨｜U+3028

9｜〩｜U+3029

此外，花碼十、二十、三十（即「〸〹〺」）後來也被加入Unicode中。但由於在舊版裏不支援，結果不少時候會借用漢字。

數字｜蘇州碼子｜替代使用的漢字

字符｜碼位｜字符｜碼位

10｜〸｜U+3038｜十｜U+5341

20｜〹｜U+3039｜卄｜U+5344

30｜〺｜U+303A｜卅｜U+5345

#### 「杭州數字」

蘇州碼子由Unicode 1.1版本加入Unicode標準，當時被誤解為杭州風格。Unicode 4.0版本的勘誤表認出了此誤解：

Unicode標準文獻中，所有關於「杭州」的錯誤都已經被修正成「蘇州」，但是為了穩定，Unicode不允許對字符名稱的改變，所以字符名稱中的「杭州數字」也就將錯就錯了。字符名稱被有些軟體作為唯一標識符，修改會造成向後兼容問題。

關於這個誤命名的應用之廣泛，甚至在英國廣播公司（BBC）於2010年出品的福爾摩斯改編劇《新世紀福爾摩斯》中的〈不識貨的行員〉一集裡都得以體現：蘇州碼子大量以「杭州」之名，作為該劇第一季第二集的關鍵線索，穿插其間。

### 相關標準

中國大陸的GB 2312標準未收錄蘇州碼子相關的符號。GB 18030標準由於是一種Unicode變換格式，所以也收錄了Unicode中與蘇州碼子相關的符號。

台灣的Big5、CNS 11643收錄了蘇州碼子中的1到9、10、20和30，其中1到3為縱式。

## 外部連結

- 蘇州碼 － 阿拉伯數字轉換器
- 有各種使用蘇州碼子的歷史文件。
- 展出多張使用蘇州碼子的老發票圖片。
- 京張鐵路的里程碑使用了蘇州碼子，目前在青龍橋站展示。
- 董啟章祖父的賬簿，用「上進下支」的舊式記賬，內文豎寫，花碼橫寫。