2013-09-25 7 views
2

Я отправляю некоторые данные (utf8) в свою базу данных, и я вижу их из phpMyAdmin. Данные содержат греческие и английские символы. Проблема в том, что греческие символы отображаются как вопросительные знаки (????). На английском хорошо. Независимо от того, что я не пробовал:Греческие символы - phpMyAdmin

Для DATABASE, и моя колонка сортировки: utf8_unicode_ci, utf8_general_ci

После моего соединения с базой данных:

mysqli_query ("SET NAMES 'UTF8'", $dbc); 
mysqli_query ("SET CHARACTER SET 'UTF8'", $dbc); 

проблема все еще остается, и я не могу понять, как решить его. Кто-нибудь знает, как это исправить?

Обновление: Данные передаются из Android приложения:

try { 
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); 

    nameValuePairs.add(new BasicNameValuePair("a", "hello, ΓΕΙΑ ΣΟΥ")); 
    nameValuePairs.add(new BasicNameValuePair("b", "Good Morning, ΚΑΛΗΜΕΡΑ"));    
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

    try { 
     httpclient.execute(httppost); 
    } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
    } 

} catch (IOException e) { 
    Log.i("HTTP Failed", e.toString()); 
} 

И команды для вставки значений в базу данных:

$q= 'INSERT INTO `table`(`x`, `y`) VALUES ("'.$_POST["a"].'","'.$_POST["b"].'")'; 
+0

Можем ли мы также увидеть код PHP? Возможно, проблема заключается в отправке данных в базу данных. – mavrosxristoforos

+0

@mavrosxristoforos Конечно, подожди, я отправлю код. –

+0

Как применяется тег android?Вы просматриваете этот сайт на Android? Проверьте также кодировку полей в таблице! –

ответ

1
  1. Проверьте, что ваша БД имеет кодировку UTF8 включен для db/tables
  2. Проверить в браузере, что UTF8 включен (например, для Firefox: просмотр/кодировка символов/Unicode (UTF-8))
  3. Check reponse HTTP-заголовок типа контента: Content-Type: text/html; кодировка = UTF-8
0

Джордж, сначала я подумал, что ваш код был в PHP, принимая во внимание, что вам упомянутый phpMyAdmin. Хотя, у меня есть небольшой опыт работы на Android, и я бы избегал писать греческие символы (или любые нестандартные символы) в файле .java.

Вместо этого, вы должны использовать strings.xml файл, который поддерживает Android, и получить доступ к строк в коде, как это:

R.string.kalimera 

где kalimera это имя переменной, которую вы используете для «Hello» текст.

Это прекрасно объясняет, почему база данных заполняется вопросительными знаками (????) вместо фактических символов (или, по крайней мере, так я думаю).

1

У меня была та же проблема, я искал и читал это сообщение.
После того как я нашел решение своей проблемы, я хочу поделиться ею.

изменить эту строку вашего кода

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

в

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8")); 

и теперь вы все в порядке.

Смежные вопросы