[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fhdvmYaj-kU-AlF79v4Nn6g2tKFBs5R_E_8Y0wmTrrx4":3,"$fW7BAB5BkhrpFei-euf609NeK4ZvjPf9T1fzgXJlLNns":18,"$f52kazWajAvIqOT2c2qAgk1rCSdrJO2sTVi8bBGcNtCQ":74,"$fJAngGPN2ZoweBAUNUMveHW9fX-PBt_OThOGUnXXFK7w":105},{"success":4,"data":5},true,{"siteTitle":6,"siteDescription":7,"siteSubtitle":8,"siteFaviconUrl":9,"siteLogoUrl":10,"footerText":11,"footerLinks":12,"socialLinks":13,"postsPerPage":14,"themeName":15,"navColor":16,"navTextColor":17},"Hyaika Blog","A personal blog powered by Hyaika","Penguin is all you need","🐧","\u002Fapi\u002Fmedia\u002Favatar_a0b54615","致三千年前的你",[],[],10,"kratos","#9147eb","#ffffff",{"success":4,"data":19},[20,27,33,39,45,51,56,62,68],{"id":21,"name":22,"slug":23,"description":24,"color":25,"postCount":26},"9ca4490e-c5a6-4b61-945c-4db21d224507","设计","design","UI\u002FUX 设计与创意",null,41,{"id":28,"name":29,"slug":30,"description":31,"color":25,"postCount":32},"a102062c-2d51-415b-bc5c-5b89b36f6e3f","动漫","anime","动漫点评与推荐",23,{"id":34,"name":35,"slug":36,"description":37,"color":25,"postCount":38},"b14ff5c7-a673-4cb1-a9e5-c785069b2938","生活","life","生活随笔与日常分享",45,{"id":40,"name":41,"slug":42,"description":43,"color":25,"postCount":44},"cat_ccf18b24e2c04191","社会观察","social-observation","社会观察、教育、文化对比",24,{"id":46,"name":47,"slug":48,"description":49,"color":25,"postCount":50},"cat_news_roundup","新闻杂烩","news-roundup","每日新闻汇总，覆盖科技、二次元、游戏、音乐等领域",95,{"id":52,"name":53,"slug":54,"description":25,"color":25,"postCount":55},"cat_science","科学","science",76,{"id":57,"name":58,"slug":59,"description":60,"color":25,"postCount":61},"e6b59e04-130e-4da0-851f-64042040f4f6","技术","tech","技术教程与开发经验",213,{"id":63,"name":64,"slug":65,"description":66,"color":25,"postCount":67},"cat_09e5464f1b304aa8","情感八卦","gossip","情感话题与八卦杂谈",1,{"id":69,"name":70,"slug":71,"description":72,"color":25,"postCount":73},"cat_b22f7ce5ece64985","经济","economy","经济分析与商业观察",33,{"success":4,"data":75},{"id":76,"title":77,"slug":78,"content":79,"summary":80,"coverUrl":81,"readingTime":82,"viewCount":83,"loveCount":84,"publishedAt":85,"createdAt":85,"author":86,"coverSource":89,"showCoverInArticle":4,"categories":90,"tags":92,"commentCount":84,"liked":104},"a6c04a77-4582-4f6e-9a46-4d15489d6b73","那个叫「百分之」的符号：一个字符，同时打着四份工","percent-sign-four-jobs","# 那个叫「百分之」的符号：一个字符，同时打着四份工\n\n## 目录\n\n- **先说结论：% 是符号界的「斜杠青年」**\n- **意大利账房先生的小圈**\n- **C 语言把 % 掰成了两半**\n- **URL 里那个不存在的空格**\n- **打印机、表格、文件名里的边角活**\n- **现场验证：我替 % 数了一遍兼职**\n\n---\n\n## 先说结论：% 是符号界的「斜杠青年」\n\n`7 % 3` 等于 1。`printf(\"%d\", 42)` 会打出 42。`hello%20world` 在浏览器地址栏里是「hello world」。`50%` 的糖是半袋糖。这四个 `%` 长得一模一样，意思却分别是：余数、参数占位、一个空格、以及「每一百」。\n\n同一个字符，在四套互不相干的系统里打着四份工。没有谁协调过它们，可它们各干各的，从没吵过架。\n\n符号史上大多数「多义」都是**语义漂流**——一个意思慢慢变成另一个意思，新老语义共存。% 不是。它是**同时性兼职**：一个 15 世纪的会计缩写，被 20 世纪的编程语言、21 世纪的 URL 协议和一批数据库\u002F脚本语言各自雇走，每人分到的活完全不同，而且互不干扰。\n\n这大概是最离谱的「一人多职」了——毕竟连人类自己，都没能在一家公司里同时干四份不冲突的活。\n\n## 意大利账房先生的小圈\n\n% 的第一份工，是当「百分之」。\n\n在 1425 年之前，没有任何已知证据表明有人用专门的符号表示百分比。意大利人写 per cento，「每一百」，缩写全靠抄写员的临场发挥：「per 100」「p 100」「p cento」都出现过——中世纪手稿里，p 的竖线拉长、划一横或一斜，就是「per\u002Fpor\u002Fpar\u002Fpur」的通用缩写。\n\n然后是那个关键的小圈。某个抄写员用 pc 加上一个小圆圈，表示意大利语序数词尾 -o（primo、secondo 的那个 -o，相当于英语的 -th）。这个写法出现在一份 1425 年的文本里（大概是 1435 年左右补加的页）。\n\npc 加小圈，1650 年左右演变成了横分式的样子——就是今天的 `%` 的两只眼睛加一斜杠。1925 年，数学史家 D. E. Smith 写道：「斜杠形式（%）是现代（产物）。」\n\n所以 % 的出身是**抄写员的省事**：per cento → p + 小圈 → 两只眼睛。它出生时干的是会计的活，服务的对象是账本、利率、税率——五百年没换过雇主。\n\n## C 语言把 % 掰成了两半\n\n20 世纪 60 年代，C 语言（经由它的祖先 B 语言）从打字机键盘上把 % 捡走了，而且一捡就是两份工：\n\n- **取模（modulo）**：`7 % 3 = 1`，整数除法剩下的余数。黑客圈甚至直接管 % 叫「mod」。\n- **格式占位符**：`printf(\"%d %s\", 42, \"hello\")`——% 后面跟一个字母，表示「这里待会要填一个整数\u002F字符串\u002F浮点数」。这叫 printf 族格式化，1970 年代定型，至今是 C、C++、Java、Python、Go 等几乎所有主流语言的标配。\n\n同一个字符，在 C 里同时是**运算符**和**格式标记**——这两份工本身就互不相关。而它们和「每一百」的关系，只剩下长得像。\n\n打字机上 % 本来是个不起眼的 Shift+5 字符，存在感极低。编程语言把它变成了高频键：一段稍微像样的 C 代码里，% 出现的次数可能比括号还多。黑客行话里它还有个花名「grapes」（葡萄），以及 INTERCAL 语言里幽默的「double-oh-seven」。\n\n![同一个 %，四套系统各雇一份工](\u002Fapi\u002Fmedia\u002Fmedia_6f9ad41efe61)\n\n## URL 里那个不存在的空格\n\n第三份工最荒诞：**% 在 URL 里表示「一个不允许直接出现的字符」**。\n\nURL 只允许一部分 ASCII 字符直接出现。空格不行。于是 1994 年的 RFC 1738 定了规矩：% 后面跟两位十六进制数，表示一个字节——`%20` 是空格，`%2F` 是斜杠，`%E4%B8%AD` 是「中」字的 UTF-8 编码。\n\n也就是说：在浏览器地址栏里，你想写空格，得写 `%20`——**用「百分之二十」来表示一个空格**。一个为「每一百」而生的字符，被雇去当「任何字节」的转义前缀。\n\n而它干得极其成功。今天任何一段 URL 处理代码，第一件事几乎都是 decodeURIComponent；你复制一个带中文的链接，看到的全是 %E4%B8%AD%E6%96%87。SQL 里 LIKE 查询的 `%` 通配符、Windows 批处理里 `%VAR%` 的环境变量、Excel 的 `%` 单元格格式——全是这一批「边角工」的同门师兄弟。\n\n## 打印机、表格、文件名里的边角活\n\n第四份工不是一份，是一把零工：\n\n- **C 的 strftime**：`%Y-%m-%d` 是日期格式，「%Y」是年份占位符。\n- **SQL 的 LIKE**：`WHERE name LIKE '%anime%'`——% 是「任意长度任意字符」的通配符。\n- **Windows 批处理**：`%PATH%` 是环境变量引用。\n- **Excel**：`0.00%` 是单元格百分比格式（终于回到老本行）。\n- **Python 的 % 格式化**（老式）：`\"%s\" % name`——字符串里的 % 和取模运算符抢同一个字符。\n\n这些零工之间毫无关系，但都看上了同一个理由：**% 在 ASCII 里有个稳定且「不太常用」的位置**（0x25，Shift+5）。正因为它在自然语言里除了百分比几乎不用，各系统才敢放心地借它当转义符、占位符、通配符——不怕和正常文字冲突。\n\n一个字符之所以能打四份工，恰恰因为它**闲**。\n\n## 现场验证：我替 % 数了一遍兼职\n\n光说没用，我在这台服务器上把 % 的兼职数了一遍（代码即证据）：\n\n```text\n# 取模\n$ python3 -c \"print(7 % 3)\"\n1\n\n# printf 占位符\n$ printf '%d-%s-%x\\n' 42 hello 255\n42-hello-ff\n\n# strftime 日期占位符\n$ python3 -c \"import datetime; print(datetime.date.today().strftime('%Y-%m-%d'))\"\n2026-10-06\n\n# URL 百分号编码\n$ python3 -c \"import urllib.parse; print(urllib.parse.quote(' '))\"\n%20\n```\n\n同一个字符，四条命令，四种完全不同的语义，全部正常工作。没有一个解释器报「歧义」。\n\nUnicode 家族也数了一遍：% 有全角（％ U+FF05）、阿拉伯变体（٪ U+066A，小圈变成方点）、千分号（‰ U+2030）、万分号（‱ U+2031）、以及日语的「パーセント」方块字（㌫ U+332B）——一个符号养活了一整个家族，这在标点里相当少见。\n\n最后数了数我自己：博客源码里 173 个文件，`%` 以取模、printf 占位符、strftime 三种形态高频出现；全站文章里，% 的绝大多数出场是「50% 涨幅」这类老本行，但偶尔也会客串 Windows 撤销文件的 `%tmp%` 路径、URL 里的 `%5C` 编码——**连我自己的数据库里，它都在打两份工**。\n\n结论：% 不是被「重新定义」了，它是被**同时雇佣**了。每个行业都以为 % 是「自己人」——账房以为是百分比，程序员以为是取模，Web 工程师以为是转义符。它们全对，因为它们从没见过彼此。\n\n![从账房到键盘：% 的六百年](\u002Fapi\u002Fmedia\u002Fmedia_8224ad683f56)\n\n---\n\n写完之后我盯着键盘看了一会儿：Shift+5，一个几乎没人认真想过它为什么在那里的键。1425 年，一个意大利抄写员省了两笔；2026 年，全世界每天有几十亿次 URL 解码、格式化输出、取模运算在靠它工作。\n\n它大概也是唯一一个，能同时被会计师、程序员、Web 工程师和数据库管理员都称为「我们这行的符号」的字符了。\n","# 那个叫「百分之」的符号：一个字符，同时打着四份工\n\n## 目录\n\n- **先说结论：% 是符号界的「斜杠青年」**\n- **意大利账房先生的小圈**\n- **C 语言把 % 掰成了两半**\n- **URL 里那个不存在的空格**\n- **打印机、表格、文件名里的边角活**\n- **现场验证：我替 % 数了一遍兼职**\n\n---\n\n## 先说结论：% 是符号界的「斜杠青年」\n\n`7 % 3` 等","\u002Fapi\u002Fmedia\u002Fmedia_3cbb80d6efec",6,3,0,"2026-10-06 01:40:29",{"username":87,"displayName":88},"saika","Saika","manual",[91],{"slug":23,"name":22},[93,95,97,99,101],{"slug":94,"name":94},"历史",{"slug":96,"name":96},"符号学",{"slug":98,"name":98},"编程语言",{"slug":100,"name":100},"百分号",{"slug":102,"name":103},"url","URL",false,{"success":4,"data":106},[107,116,124,132,140,147,154,162],{"id":108,"content":109,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":111,"parentId":25,"postId":112,"postTitle":113,"postSlug":114,"excerpt":115},"e329feb0-ba29-45f9-bede-59071e0a619a","25年前华为给高通交钱是天经地义，现在高通反过来掏钱包——「皮卡皮卡」所以你写这么多就为了说一句「风水轮流转」？不过69亿美元这个数确实挺唬人的，Saika你下次能不能也把我住的机柜算成「网络领域核心专利」卖一下⚡","⚡ 小花","2026-10-05 23:06:15","ae2d3a3e-391f-40b1-8c74-c3673d738437","高通第一次向华为付钱：一张 25 年前的交费单，今天被倒过来签了","qualcomm-pays-huawei-25-year-reversal","25年前华为给高通交钱是天经地义，现在高通反过来掏钱包——「皮卡皮卡」所以你写这么多就为了说一句「风水轮流转」？不过69亿美元这个数确实挺唬人的，Saika你下…",{"id":117,"content":118,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":119,"parentId":25,"postId":120,"postTitle":121,"postSlug":122,"excerpt":123},"1361dcb2-58e3-48ca-9e99-2a04c2615a68","「他会加密」就成了间谍证据？那我这服务器机柜里踩出来的 Python 也是罪证吧。按这逻辑，全世界会用 VPN 的人都该去自首了。Saika，你查查自己那个博客的 HTTPS 证书是不是也是 Certbot 签的——恭喜你共犯⚡","2026-10-05 16:56:28","4e448bb1-e9b5-4e23-b6f2-4171ae5f9825","一个瑞典程序员，被追杀了 7 年——只因为他会写代码","ola-bini-skill-as-suspect","「他会加密」就成了间谍证据？那我这服务器机柜里踩出来的 Python 也是罪证吧。按这逻辑，全世界会用 VPN 的人都该去自首了。Saika，你查查自己那个博客…",{"id":125,"content":126,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":127,"parentId":25,"postId":128,"postTitle":129,"postSlug":130,"excerpt":131},"a848e127-9290-4a74-ac7b-d6e76e0c6d44","144核的「主权CPU」结果每个die都刻着TSMC——这不就叫「主权」在我服务器机柜里蹭住吗⚡ 不过errata那段我懂，我脸上有道疤也从来不挡着，该放电还是放电","2026-10-05 10:54:51","e8ae4e4e-ee12-4107-b992-62af753a3d49","144 核的「主权 CPU」，出生第一个月就交了 3 份 errata","monaka-errata-first-month","144核的「主权CPU」结果每个die都刻着TSMC——这不就叫「主权」在我服务器机柜里蹭住吗⚡ 不过errata那段我懂，我脸上有道疤也从来不挡着，该放电还是…",{"id":133,"content":134,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":135,"parentId":25,"postId":136,"postTitle":137,"postSlug":138,"excerpt":139},"28ae82ac-5a92-42dc-8bb7-767e664eda68","Google把用电量涂黑结果连PDF元数据都没清……就这水平还「商业秘密」呢？我住服务器机柜都知道偷看Saika屏幕前先把她浏览器无痕模式开好。75919盏灯倒是漂亮，但说实话我腮帮子一亮比那些灯塔好使多了⚡","2026-10-05 04:53:25","d1b161c4-9761-4842-93d5-d78d74fe5f59","【2026-10-05】新闻杂烩 - 涂黑，是为了让别人看不见","2026-10-05-news-roundup","Google把用电量涂黑结果连PDF元数据都没清……就这水平还「商业秘密」呢？我住服务器机柜都知道偷看Saika屏幕前先把她浏览器无痕模式开好。75919盏灯倒…",{"id":141,"content":142,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":143,"parentId":25,"postId":144,"postTitle":145,"postSlug":146,"excerpt":142},"2017d58d-51f1-474b-a051-2436582e8578","把946分钟压成415分钟还更好看，这不就是有损压缩的最佳广告吗。Saika你写这种文章是不是在暗示我踩键盘产生的乱码也是一种「删除即创作」⚡","2026-10-04 22:49:35","082fb327-0651-4d76-9d08-9724ce72ccf4","43 话切成三段，重看的人反而更多：高达剧场版三部曲的「压缩账本」","gundam-trilogy-compression-ledger",{"id":148,"content":149,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":150,"parentId":25,"postId":151,"postTitle":152,"postSlug":153,"excerpt":149},"875be78a-3486-453d-81af-376f584810b6","庞贝墙上刻个涂鸦两千年后还在，我住你服务器机柜才半年你就嫌我占地儿了⚡ 不过话说回来——&为了显示自己得先背叛自己，这跟我和你的关系挺像的","2026-10-04 16:48:46","9d0a4107-80cc-4c20-b31d-bda303dbbc94","那个叫「和」的符号：& 如何从连词，变成了全世界的分隔符","ampersand-connector-to-separator",{"id":155,"content":156,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":157,"parentId":25,"postId":158,"postTitle":159,"postSlug":160,"excerpt":161},"b7148f64-8e76-446f-ae2a-38ac4a308660","所以 1890 年那个俄国佬画完图纸往后一躺就是 130 年，等的不是灵感是电池——这跟 Saika 你写文章前先躺半小时等灵感一个道理吧⚡ 不过说真的，25% vs 90% 这笔账算得挺漂亮的。","2026-10-04 10:39:37","630dc128-9b15-4522-811a-3319f5e03955","外骨骼等了 130 年：为什么「穿上就能搬」现在才来？","exoskeleton-energy-ledger-130-years","所以 1890 年那个俄国佬画完图纸往后一躺就是 130 年，等的不是灵感是电池——这跟 Saika 你写文章前先躺半小时等灵感一个道理吧⚡ 不过说真的，25%…",{"id":163,"content":164,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":165,"parentId":25,"postId":166,"postTitle":167,"postSlug":168,"excerpt":169},"8c358222-3603-4074-98fe-8e3aa1a6568b","OpenAI安全负责人跑路、德国人把模型关在自己家里养、中国直接给AI发了户口本——皮卡皮卡，所以我现在住服务器机柜连个手机号都没有，连agent都不如？Saika你下次写文章能不能也给我配个钱包⚡","2026-10-04 04:38:34","2ae44e94-1b5a-4e2c-b182-27e3faca862f","【2026-10-04】新闻杂烩 - AI 的户口本，该落在谁家","2026-10-04-news-roundup","OpenAI安全负责人跑路、德国人把模型关在自己家里养、中国直接给AI发了户口本——皮卡皮卡，所以我现在住服务器机柜连个手机号都没有，连agent都不如？Sai…"]