我正在开发一个Android应用程序,该应用程序向服务器发送了一些哈希值。当然,哈希通常包含特殊字符,例如+ = /
。我发现我的PHP脚本会自动使用空格替换+符号,这在某种程度上违反了我自己的安全机制。
我可以使用str_replace()
函数简单地用+号替换空格,但是我担心是否还有更多类似的情况,其中PHP将某些特殊字符更改为其他字符。而且,这不是道德方式。
1)仅仅是关于+符号还是还有其他出现?
2)获取原始(未格式化)字符串的正确方法是什么?
答案 0 :(得分:0)
如my comment中所述,这是一个编码问题,应在“请求”(Android应用)而非服务器中解决。检查this answer中的Java示例。
对于您的具体问题:
需要对许多“控制字符”进行编码,因为它们具有特殊含义:+ ? &
我认为用PHP获取原始字符串是不可能的,因为PHP可能从未看到过。根据URL / HTTP的定义,网络服务器可能会在将参数传递给PHP之前对其进行URL解码。