Php 无法将字符串正确上载到服务器

Php 无法将字符串正确上载到服务器,php,android,Php,Android,我正在尝试将字符串上载到服务器,但字符串中的+符号未被保存,而是被空格替换。因此,如果我将ddd+fff作为salt或iv发送,它将作为ddd-fff保存在sql数据库中。为什么+符号会丢失 谢谢 在android应用程序中上载代码: parameters ="id="+mUsername+"&pass="+mPassword+"&operationtype="+moperationtype+"&salt="+Base64.encode Bytes(salt)+"&

我正在尝试将字符串上载到服务器,但字符串中的+符号未被保存,而是被空格替换。因此,如果我将ddd+fff作为salt或iv发送,它将作为ddd-fff保存在sql数据库中。为什么+符号会丢失

谢谢

在android应用程序中上载代码:

parameters ="id="+mUsername+"&pass="+mPassword+"&operationtype="+moperationtype+"&salt="+Base64.encode    Bytes(salt)+"&iv="+Base64.encodeBytes(iv);   

            try
            {
                url = new URL("http://www.xyz.com/connect.php");
                connection = (HttpURLConnection) url.openConnection();
                connection.setDoOutput(true);
                connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                connection.setRequestMethod("POST");    

                request = new OutputStreamWriter(connection.getOutputStream());
                request.write(parameters);
                request.flush();
                request.close();            
                String line = "";               
                InputStreamReader isr = new InputStreamReader(connection.getInputStream());
                BufferedReader reader = new BufferedReader(isr);
                StringBuilder sb = new StringBuilder();
                while ((line = reader.readLine()) != null)
                {
                    sb.append(line + "\n");
                }
                // Response from server after login process will be stored in response variable.                
                response = sb.toString();
                // You can perform UI operations here
                Toast.makeText(this,"Message from Server: \n"+ response, 0).show();   

                isr.close();
                reader.close();

            }
            catch(Exception e)
            {

                // Error
            }
connect.php的代码是:

<?php
$host="www.host.com"; // Host name
$username="user"; // username
$password="pass"; // password
$db_name="db"; // Database name
$tbl_name="table"; // Table name
$usertable="table";

// Replace database connect functions depending on database you are using.
mysql_connect($host, $username, $password) OR DIE ("Unable to 
        connect to database! Please try again later.");

mysql_select_db("$db_name");

$operationtype="restore";
// username and password sent from form
//NEVER Remove the mysql_real_escape_string. Else there could be an Sql-Injection!
$myusername=mysql_real_escape_string($_POST['id']);
$mypassword=mysql_real_escape_string($_POST['pass']);
$salt=($_POST['salt']);
$iv=($_POST['iv']);
$operationtype=mysql_real_escape_string($_POST['operationtype']);


$sql ="INSERT INTO `db`.`table` (`row`, `id`, `pass`,`salt`, `iv`) VALUES (NULL, '$myusername', '$mypassword','$salt','$iv');";

$result=mysql_query($sql);


?>
对URL使用a,这样所有字符的编码方式都是正确的。不允许在URL中写入特定字符,如asu“+$§”。
并在PHP中使用

URL规范:

Reserved
Have to be encoded sometimes
! * ' ( ) ; : @ & = + $ , / ? % # [ ]

您必须在get for php ie中使用
%2B

example.com?q=string%2Bblah
情商


@服务器端不需要A.S.解码。因为他使用
Content-Type:application/x-www-form-urlencoded
php应该在$\u POST预定义变量中处理解码。
string+blah