символ плюс меняется на пробел при отправке данных в php-скрипт и сохранении в таблице mysql через Android
Я пытаюсь отправить список массивов, преобразованный в строку, а затем URL-адрес, закодированный в php-скрипт с помощью запроса POST, который сохранит эти данные в таблице mysql. Все в порядке, за исключением того, что символ "+" в базе данных заменен на ""(пробел).
Это javacode в Android, который я использую для отправки запроса POST
ContactNumbers
является ли ArrayList, содержащий список фонем
ContactNumbers.toString()
является [+919401557473, +919085425753, +919435448667, +9954263031]
param = "param="+ContactNumbers.toString(),;
try {
String yourURL = "http://54.169.88.65/events/eventmain/get_users2.php";
URL url = new URL(yourURL);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.setFixedLengthStreamingMode(param.getBytes().length);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
OutputStream out = new BufferedOutputStream(connection.getOutputStream());
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
writer.write(param);
writer.flush();
writer.close();
out.close();
connection.connect();
Сценарий php
get_users2.php
, который я использую, выглядит так следует:
<?php
$r = $_POST['param'];
mysql_connect("localhost","root","magento");
mysql_select_db("Eventmain");
$sql = "INSERT INTO `data`(`data`) VALUES ('$r')";
mysql_query($sql);
?>
Таблица data
в mysql выглядит следующим образом:
CREATE TABLE IF NOT EXISTS `data` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Столбец data
имеет Collation
, равный utf8_general_ci
.
Пожалуйста, помогите.
1 answers
Дело в том, что вы кодируете параметры URL на стороне Android, а затем кодируете их с помощью своего PHP-скрипта.
К сожалению, декодирование URL-адреса "+" является пробелом.
Вы можете попробовать изменить символ "+" в своем приложении для Android на другой символ, на который не влияет кодировка/декодирование URL, а затем на стороне PHP вы можете заменить этот символ на "+" после декодирования URL.