微軟「深層黑歷史」!就因為一個滑鼠名稱 曾搞砸自家藍牙驅動程式
記者彭夢竺/編譯
在軟體和硬體開發的世界中,一個看似微不足道的符號,有時能引發災難性的後果。最近,一段關於微軟(Microsoft)藍牙驅動程式的程式碼往事被揭露,其幽默程度和荒謬性,遠超乎人們對「Windows驅動程式故事」的預期。問題的源頭,竟然是一隻無線簡報滑鼠名稱中的「®註冊商標符號」。

無心插柳的「無線簡報滑鼠8000」
故事發生在2006年,當時微軟推出了一款看似普通的週邊設備—Microsoft Wireless Notebook Presenter Mouse 8000(微軟無線筆記型電腦簡報滑鼠8000)。這項技術在當時相對新穎,這款滑鼠的功能不在於精準度,而是底部的一系列按鈕,用於PowerPoint簡報的前進、後退和音量調整等功能。這是一款專為簡報設計的無害產品。
然而,這款滑鼠在經常深入研究Windows驅動程式程式碼的程式設計師圈子中,卻聲名狼藉。因為在Windows藍牙驅動程式的深處,竟然硬生生寫入了這隻滑鼠的全名,這是一個極不尋常的做法。
商標符號編碼錯誤導致系統崩潰危機
資深微軟開發人員Raymond Chen在他的部落格《The Old New Thing》中解釋了背後的原因。硬體設備在連接時,應使用UTF-8標準(當今數位文本最常見的編碼標準)來報告其「本地名稱」。
但這隻無線簡報滑鼠8000卻違背了規範。它在報告名稱時,將®註冊商標符號,沒有依照規範使用UTF-8,而是錯誤地使用了已過時的Code page 1252編碼(Windows在80年代至90年代末期的主流編碼標準)。更糟的是,這個錯誤的符號序列在UTF-8標準中是不合法的,導致系統無法識別其名稱,甚至可能造成電腦當機。
滑鼠名稱被硬寫入驅動程式
程式設計中,將特定資料硬寫入原始碼通常是禁忌。但微軟為了兼容這隻「行為不端」的自家滑鼠,只好破例。Raymond Chen幽默地寫道:「感謝法務部,因為堅持在描述符中加入一個®符號,搞砸了整個東西。」
為了修復這個錯誤,Windows藍牙驅動程式內被迫設置了一個特殊的表格,專門列出「報告錯誤名稱的設備(以及應該使用的正確名稱)」。如果藍牙堆疊偵測到這些設備報告了錯誤名稱,就會將其替換為正確的名稱。
Raymond Chen透露:「這個表格目前只有一個條目。」而這個唯一的條目,就是Microsoft Wireless Notebook Presenter Mouse 8000。這段故事完美詮釋了企業法務部門的堅持,即使最終導致程式碼產生了荒謬且獨特的「打補丁」。
資料來源:pcgamer
![]()






