Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Rainmaker93
4 / 4 / 2
Регистрация: 12.09.2013
Сообщений: 69
1

Android - PhP - MySql. Кодировка

03.11.2015, 09:43. Просмотров 504. Ответов 6
Метки нет (Все метки)

Всем привет!
Друзья, помогите пожалуйста! Написал приложение под Android, которое общается с MySql сервером посредством PhP прослойки. Кодировка сервера cp-1251 general ci, Но русские буквы он не воспринимает (рисует в таблицах знаки вопроса)
Пробовал в php файле выставлять кодировки - не помогло.
Может кто встречался с проблемой?
вот код:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
protected Void doInBackground(Void... params) {
                ArrayList<NameValuePair> dataToSend = new ArrayList<NameValuePair>();
                dataToSend.add(new BasicNameValuePair("fam",fam));
                dataToSend.add(new BasicNameValuePair("name",name));
                dataToSend.add(new BasicNameValuePair("email",email));
                dataToSend.add(new BasicNameValuePair("password",password));
                
                HttpParams params1 = new BasicHttpParams();
                HttpConnectionParams.setConnectionTimeout(params1, CONNECTION_TIMEOUT);
                HttpConnectionParams.setSoTimeout(params1, CONNECTION_TIMEOUT);
                
                HttpClient client = new DefaultHttpClient(params1);
                HttpPost post = new HttpPost(SERVER_ADRESS + "reg_user.php");
                
                try
                {
                    post.setEntity(new UrlEncodedFormEntity(dataToSend));
                    client.execute(post);
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
 
                return null;
            }

PHPHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 
        $name = $_POST['name'];
    $fam = $_POST['fam'];
    $email = $_POST['email'];
        $password = $_POST['password'];
    
    $con = mysql_connect("localhost", "user2", "user2","mhdatabase");
    $statment = mysql_prepare($con, "INSERT INTO user(fam, name, email, password) VALUES(?, ?, ?, ?)");
    mysql_stmt_bind_param($statment, "ssss", $fam, $name, $email, $password);
    mysql_stmt_execute($statment);
    
 
?>
Добавлено через 11 часов 3 минуты
Так же пробовал utf8. Та же история. Помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2015, 09:43
Ответы с готовыми решениями:

Кодировка в php и MySQL
Здравствуйте, уважаемые форумчане! Помогите начинающему веб-любителю...

Кодировка utf8 в MySQL+PHP
Вижу, что за последнее время тем создано тысячу, но, уважаемые форумчане, я...

Кодировка mysql и вывод через php
писал уже на форум баз данных. может мне тут помогут. везде стоит кодировка...

Неправильная кодировка при ВВОДЕ данных в MySQL из PHP
Перерыл весь форум, но проблема так и не решилась. Дано: компьютер с Windows 7...

Кодировка к MySQL
&lt;?php //Передаём переменным данные форм //Присваиваем каждой форме переменную...

6
СлаваВирус
469 / 397 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
03.11.2015, 10:22 2
Эммм а соединение точно устанавливается? может и глупый вопрос, но я не видел и не пробовал в mysql_connect указывать базу. В данном расширении подключение устанавливается
PHP
1
2
mysql_connect(host, user, password);
mysql_select_db(db);
0
Rainmaker93
4 / 4 / 2
Регистрация: 12.09.2013
Сообщений: 69
03.11.2015, 11:20  [ТС] 3
Соединение устанавливается, данные записываются
0
СлаваВирус
469 / 397 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
03.11.2015, 11:28 4
В каком месте отображаются знаки вопросов, в самой БД или при выводе? попробуйте указать кодировку соединения
PHP
1
2
3
$link = mysql_connect(host, user, password);
mysql_set_charset('utf8',$link);
$db_select = mysql_select_db(db, $link);
0
Rainmaker93
4 / 4 / 2
Регистрация: 12.09.2013
Сообщений: 69
03.11.2015, 12:35  [ТС] 5
Знаки вопроса пишутся в БД, причем если я в php файле в запросе напишу вместо переменных русские значения, то в базу запишутся нормальные русские символы
0
СлаваВирус
469 / 397 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
03.11.2015, 12:38 6
Какая кодировка у таблиц в БД, какая кодировка у файла? попробовали вышеуказанный пример?
1
Rainmaker93
4 / 4 / 2
Регистрация: 12.09.2013
Сообщений: 69
03.11.2015, 20:21  [ТС] 7
Кодировки везде совпадают.
Ваш вариант попробую вечером, спасибо.
Обязательно отпишусь о результатах

Добавлено через 7 часов 35 минут
Ребят, решил таки проблему следующим образом:

База данных на сервере в UTF-8
PHP файлы в UTF-8

в JAVA код добавил строку:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class RegisterUser extends AsyncTask<Void,Void,Void>
        {
 
            @Override
            protected Void doInBackground(Void... params) {
                ArrayList<NameValuePair> dataToSend = new ArrayList<NameValuePair>();
                dataToSend.add(new BasicNameValuePair("name",name));
                dataToSend.add(new BasicNameValuePair("fam",fam));
                dataToSend.add(new BasicNameValuePair("email",email));
                dataToSend.add(new BasicNameValuePair("password",password));
                
                HttpParams params1 = new BasicHttpParams();
                HttpConnectionParams.setConnectionTimeout(params1, CONNECTION_TIMEOUT);
                HttpConnectionParams.setSoTimeout(params1, CONNECTION_TIMEOUT);
                
                HttpClient client = new DefaultHttpClient(params1);
                HttpPost post = new HttpPost(SERVER_ADRESS + "reg_user.php");
                
                try
                {
                    post.setEntity(new UrlEncodedFormEntity(dataToSend,HTTP.UTF_8)); //прописал второй параметр HTTP.UTF_8
                    client.execute(post);
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
 
                return null;
            }
1
03.11.2015, 20:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2015, 20:21

MySQL и кодировка
Прошу прощения за не сильно содержательное название, но там много описывать для...

Кодировка MySQL
Всем привет! Проблема у меня такая: пытаюсь из-под PHP записать в таблицу MySQL...

Кодировка в MySQL
отправляю такой запрос: &quot;INSERT INTO &quot;.$px.$utable.&quot; (login, pass, sex, bday,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru