希腊字符 - phpMyAdmin

时间:2013-09-25 11:00:39

标签: android mysql phpmyadmin

我在dataBase中发送了一些数据(utf8),我从phpMyAdmin看到它们。数据包含希腊语和英语字符。问题是希腊字符显示为问号(????)。英语还可以。无论我尝试过什么:

对于dataBase和我的列排序规则:utf8_unicode_ci,utf8_general_ci

与dataBase连接后:

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"].'")';

4 个答案:

答案 0 :(得分:1)

  1. 检查您的数据库是否为db / tables
  2. 启用了UTF8编码
  3. 检查浏览器是否启用了UTF8(例如,对于Firefox:视图/字符编码/ Unicode(UTF-8))
  4. 检查响应内容类型的http标头: 内容类型:text / html;字符集= UTF-8

答案 1 :(得分:1)

这是一个常见问题解答,因此phpMyAdmin团队已编写此页面以帮助: http://wiki.phpmyadmin.net/pma/Garbled_data

答案 2 :(得分:1)

我遇到了同样的问题,我搜索并阅读了这篇文章 在找到问题的解决方案之后,我想分享它。

更改代码的这一行

    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

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

现在你没事。

答案 3 :(得分:0)

George,起初我认为你的代码是用PHP编写的,考虑到你提到了phpMyAdmin。虽然,我确实在Android方面有一点经验,但我会避免在.java文件中写希腊字符(或任何非标准字符)。

相反,您应该使用Android支持的strings.xml文件,并在代码中访问您的字符串,如下所示:

R.string.kalimera

其中kalimera是您用于&#34; Hello&#34;的变量的名称。文本。

这可以完美地解释为什么数据库中充满了问号(????)而不是实际的字符(或者至少我认为)。