我正在与一个远程应用程序似乎做一些神奇的编码。应用程序呈现明确的响应(我将其称为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的奇怪转换?
我会很感激任何意见/想法/提示。
为什么不使用?是不是一个有效的问题,有效的答案? –