開發的一款 App,多組測試帳號在 PC 客戶端與網頁版均能正常登入,但在 Windows 8 平板上卻出現「帳號或密碼錯誤」與「正常登入」交替發生的詭異現象。經多次確認輸入無誤,問題依然存在。
初以為是伺服器回傳邏輯錯誤,但 PC 與網頁版完全正常,僅平板異常。改用模擬器偵錯,終於發現關鍵:
帳號
10000@qq.com在平板輸入後,實際傳送字串為10000@qq.com(全形 @)。
肉眼幾乎無法分辨,但字元編碼完全不同:
U+0040(英文輸入法產生)U+FF20(中文輸入法產生)PC 鍵盤在中/英輸入法下輸出的 @ 皆為半形;但 Windows 8 平板虛擬鍵盤在中文輸入法下輸出的是全形 @,必須先切換至英文輸入法才能輸入半形 @。

這不是程式 Bug,而是平台輸入法行為差異導致的使用者輸入錯誤。Windows 8 平板虛擬鍵盤的中/英模式字元輸出不一致,確實容易造成誤判,開發者務必在前端或後端做字元正規化,才能確保跨裝置一致性體驗。