Этот вопрос задавали много раз, но ни одно из предложенных решений не работает для меня :(Вставка специальных символов/PHP + MySql + Android
мне нужно вставить специальные символы, как '(закрытие апостроф), например, , в MySql БД через PHP с помощью Android
MySql Таблица определяется как:.
ENGINE=InnoDB DEFAULT CHARSET=utf8;
Данные передаются в PHP через Java, так:
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("param1", value1));
nameValuePairs.add(new BasicNameValuePair("param2", value2));
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("blabla.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
response = httpclient.execute(httppost);
PHP получает его так:
//To be able to receive UTF-8 (needed?)
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
$param1 = $_POST['param1'];
$param2 = $_POST['param2'];
//Convertsion to UTF-8 (needed?)
$param1 = utf8_decode($param1);
$param2 = utf8_decode($param2);
$mysqli = new mysqli($hostname, $username, $password, $dbname);
mysqli_set_charset('utf8',$mysqli);
$mysqli->prepare("INSERT INTO ...
Вставить команда вставляет запись, но специальные символы становится в таблице "?". Любая помощь?
т.е. "A'B" становится в БД: "A B"
Спасибо функция
Показать пример небольшой строки, которую вы отправляете. Затем покажите, как php получает эту строку. Поэтому перед тем, как положить его в базу данных. А также перед расшифровкой его utf8. Мы хотим знать сначала, если база данных имеет к этому какое-либо отношение. – greenapps
После назначения $ mysqli add call: '$ mysqli-> set_charset (" utf8 ");' – Rimas
Я отредактировал свой вопрос, добавив функцию set_charset и пример. Но я продолжаю эту проблему! : '( – Geltrude