[WinStory #02] 消失的波蘭——Windows 時區(qū)地圖的故事
當你打開 Windows XP 的時區(qū)設置時,仔細觀察下面這張地圖

將其放大,注意它的歐洲部分,
少了一個國家:波蘭。

這個 bug 存在于 Windows 98 第一版,Windows 2000,以及 Windows XP 和 Server 2003 的部分版本中。(注:Win9x 系列自 Windows 98 SE build 2150A 起移除了這張地圖,因此該 bug 不存在于 Win98 第二版與 WinMe 中,反而是將該問題留到了NT系列中)而 Windows 95 中不存在此問題。
為了理解這個 bug 出現(xiàn)的原因,我們要先回到這張地圖的緣起(順帶提下這張地圖的繪制原理)
這張地圖隨時區(qū)設置在 Windows 95 build 99 首次引入,之后又引入了“所在時區(qū)高亮顯示,且能通過點擊地圖的方式選擇時區(qū)”的功能,所選時區(qū)顯示為亮綠色,其他部分為深綠色。區(qū)域設置中的地圖也有類似的設計。

但這個設計給微軟帶來了一些麻煩。
1995年初,秘魯和厄瓜多爾之間起了邊界沖突,秘魯政府向微軟抱怨邊界位置不正確。當然,如果微軟同意并將邊界向北移動,它會收到厄瓜多爾政府同樣的抱怨,要求微軟將邊界移回。同時,印度政府威脅要在該國禁止微軟的 Windows ,因為微軟在時區(qū)地圖上將一個有爭議的地區(qū)劃給了巴基斯坦。微軟不得不緊急撤回20萬份銷往印度的 Windows 95 副本,并為印度制作一個特殊版本的 Windows 95。

最終,自 Windows 95 build 842 (注:雖然該版本的版本號小于 RTM(950 r-6),但它的編譯日期實際上要晚于 RTM)起,微軟禁用了時區(qū)高亮顯示和單擊地圖選擇時區(qū)的功能,而微軟禁用它們的手段極其簡單:將“所選時區(qū)的顏色”也設置為深綠色。
于是,表面上看,這個功能消失了,這張地圖也不再有任何的區(qū)域劃分,但實際上不是。
這張地圖仍然有著時區(qū)的劃分,而為了確定世界的哪些部分是陸地,哪些部分是水域,時區(qū)地圖列舉了所有時區(qū)以及與每個時區(qū)關聯(lián)的標簽(可以在注冊表中找到)。也就是說,時區(qū)的更改會引起這張地圖的陸地和海洋更改。

于是,回到波蘭,
在 Windows 95 發(fā)布時,波蘭擁有自己單獨的時區(qū),Windows 95 將其稱為“華沙標準時間/華沙夏令時間”
但后來,波蘭的時區(qū)變成了:
(GMT+01:00)?貝爾格萊德,布拉迪斯拉發(fā)、布達佩斯、盧布爾雅那、布拉格、華沙
(GMT+01:00) 薩拉熱窩、斯科普里、索菲亞、華沙、薩格勒布
所以,“華沙標準時間”時區(qū)消失了,與之相關的陸地也隨之消失。因此,波蘭在地圖上顯示為水域。
而為了解決這個問題,需要使用新標簽制作新的世界位圖(將與波蘭對應的像素標記為“中歐時間”),以便波蘭再次從海中出現(xiàn)。
最終,(WinNT系列)自 Windows Vista Build 5219 起,微軟移除了這張地圖。
故事結束。

參考資料:
雷蒙德 · 陳《為什么我的時區(qū)沒有在世界地圖上突出顯示?》https://devblogs.microsoft.com/oldnewthing/20030822-00/?p=42823
雷蒙德 · 陳《偉大的波蘭?!蛘摺覀兺浟瞬ㄌm!》
https://devblogs.microsoft.com/oldnewthing/20061027-00/?p=29213