我正在與一個遠程應用程序似乎做一些神奇的編碼。應用程序呈現明確的響應(我將其稱爲True和False),具體取決於用戶輸入。我知道兩個有效的值,這將會呈現'真',所有其他值都應該是'假'。這種情況是一種奇怪的UTF-8編碼轉換嗎?
我發現(意外)有趣的是,提交損壞的值導致'真'。
示例輸入:
USER10 //gives True
USER11 //gives True
USER12 //gives False
USER.. //gives False
OTHERTHING //gives False
所以基本上只有這兩個第一值呈現真響應。我注意到,令人驚訝的是,USERL0(十六進制\ x55 \ x53 \ x45 \ x52 \ C0 \ xB1 \ x30)被接受爲True。 我沒有檢查其他十六進制字節,沒有這樣的成功。它使我得出結論:\ xC0 \ xB1可以以某種方式轉換爲0x31(='1')。
我的問題是 - 它是如何發生的?該應用程序是否執行了從UTF-16(或其他)到UTF-8的奇怪轉換?
我會很感激任何意見/想法/提示。
爲什麼不使用?是不是一個有效的問題,有效的答案? –