技術筆記
共 115 篇文章同一個數打兩遍,最小公倍數成了 94906266.99999999:先乘後除撞上限的是中間量
同一個數打兩遍就露餡:輸入 94906267, 94906267 時,最小公倍數成了 94906266.99999999——先乘後除撞上限的是中間量,不是結果。
副檔名從最後一個點算起:LICENSE、.gitignore、archive.tar.gz 為什麼會漏改
副檔名只認最後一個點:27 行樣本 UPPER 改 11 行、lower 改 9 行、Title 改 19 行,LICENSE 與 .gitignore 原樣傳回,archive.tar.gz 只動 gz,帶路徑還會改到目錄名稱。
批次建立目錄的指令碼裡,編號補零和 CON 這兩個坑最容易被忽略
同一份 150 行的清單,BAT 寫 157 行 / 3544 位元組,PowerShell 寫 156 行 / 11049 位元組;補零位數選小不會重名,CON 卻會原樣進指令碼。
同一句中文,UTF-8 存 12 位元組、GBK 只存 8 位元組:編碼是怎麼被判錯的
判定鏈只有 BOM、UTF-8 嚴格解、GBK 嚴格解和兜底四步,日文 Shift-JIS 的位元組因同時合法於 GBK 被判成中文樣子;另有位元組數、UTF-16 碼元與行數三把尺,以及先於大小門檻撞到的 50000 段渲染上限。
API 回傳的 JSON 匯出成 CSV,Excel 裡為什麼少了一欄
API 回傳的 JSON 匯出成 CSV:表頭取所有記錄鍵的聯集,巢狀物件不勾選展平就塌成 [object Object],BOM 那 3 個位元組只加在下載那一路。
伺服器日誌裡那串 User-Agent,哪幾個欄位是自己填的
從 Nginx 日誌裡挑一行 UA 來讀:32 條瀏覽器表、21 條爬蟲表、34 條高亮表都按順序取首個命中,核心與用戶端是兩根軸,NT 對照只有 7 條命中,偽造蜘蛛與大寫裸子串的誤判都有樣本。
sin(π) 算出 0.0548 而不是 0:角度制、弧度制與計算機的優先順序
sin(pi) 螢幕上是 0.0548036651488 而不是 0:把模式、表達式語法和雙精度表示分開核對,附 raw 與 shown 對照表及階乘、優先順序、精度上限清單。
同一批投放連結為什麼跑出兩行資料?UTM 五個參數、大小寫與一次百分號編碼
同一批投放連結為什麼在報表裡跑出兩行?從 utm 五個參數的分工、同名參數是覆蓋不是追加、中文與空格的百分號編碼膨脹,到參數順序改變字串,都用真實字元數對一遍。
JWT 那三段字串裡到底寫了什麼?header、payload 與 exp 的真實讀法
接手一個登入 API,抓包只拿到三段字串:什麼時候到期、role 裡寫了什麼。我把樣本逐段解碼,字元數、位元組數和 UTC 時間都擺出來,說清編碼與簽章的分別。
網址裡哪一段會到伺服器?六段拆分與 %20、+、二次編碼
把網址拆成協定、主機、連接埠、路徑、查詢和錨點六段,用本機實測說明錨點不出瀏覽器、加號等於空格、二次編碼為什麼解一次還剩百分號。
身分證最後一位為什麼是 X?前 17 位加權取模算出的校驗碼
身分證末位為什麼會出現 X?17 位權重、模 11 取餘、查表三步的完整算法,以及校驗位能攔下手滑卻攔不住編造的那條界線。
子網路遮罩寫成 /22 能帶多少台裝置?主機位、網路位址與廣播位址
256 個位址為什麼只能連 254 台?主機位、網路位址與廣播位址這三者怎麼扣出可用數,附 /16 到 /30 的位址區塊對照表和遮罩換算方法。