MySQL和奇怪字符的编码结果

时间:2014-09-02 08:44:24

标签: php mysql sql encoding utf-8

我对MySQL与将数据导入特定表之间的关系存在问题。无论何时请求表单,所有具有unicode字符的数据都将转换为其他奇怪的字符(问号)。

我现在尝试了什么:

  • 设置MySQL db / table使用 utf8_croatian_ci
  • 将元数据设置为HTML以使用 utf-8 编码
  • 查询SET NAMES 'utf8'
  • 设置要通过UTF-8
  • 编码的所有文件
  • 查询mysqli_set_charset()(感谢您注意HAL9k)
  • 还添加了:header("Content-type: text/html; charset=utf-8");
  • 尝试修改my.iniphp.ini以将默认字符集设置为UTF-8

信件转换为DB:

  • č, ć已翻译为?, ?(HTML& DB)
  • ž被翻译为(HTML,在数据库中,它是真正的字符'ž' - 未翻译)

我的元:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

代码(伪):

$con = mysqli_connect($host, $db_user, $db_pass, $db_name) or die("Error.");

// Spremanje rekorda preko UTF-8 karaktera
mysqli_query($con, "SET NAMES 'utf8'");  // ovo je bolji način :-)

$selekt = "UPDATE proizvodi SET ..
                            WHERE   slug='...'";

不要因为程序风格而讨厌我。 :-)干杯谢谢你。建议请。

1 个答案:

答案 0 :(得分:0)

请在db / table结构中尝试此操作

utf8_general_ci

如果这不起作用,请找到当前字符集,代码在下面


    if (!mysqli_set_charset($link, "utf8")) {
        printf("Error loading character set utf8: %s\n", mysqli_error($link));
    } else {
        printf("Current character set: %s\n", mysqli_character_set_name($link));
    }