Mysql php字符集设置

时间:2012-10-27 15:31:21

标签: php mysql

首先我们使用的是mysql的默认字符集latin1_swedish_ci。然后我们遇到了俄语等其他语言的问题。所以我们现在将表格转换为整理,将字段转换为utf8_unicode_ci。我们需要一些确认,如果我们坚持使用utf8_unicode_ci来支持所有可能的语言,或者去寻找像utf8_bin这样的东西吗?

我们使用mysqli的php文件的下一期我们设置了这个。

if (!mysqli_set_charset($link, "utf8")) {
    echo("Error loading character set utf8: ". mysqli_error($link));
  } 
  else {
    echo("Current character set: ". mysqli_character_set_name($link));
  }

然后,对于我们使用mysql的地方,我们只按以下方式执行

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'"); 

现在问题我们发现这很乏味,我们很害怕我们可能会错过。是否可以像配置文件一样设置此字符设置,就像我们的数据库连接一样?

1 个答案:

答案 0 :(得分:4)

不要将mysql_ *与mysqli_ *函数混合使用。您需要保持一致!首先使用 mysqli _ ,然后使用 mysql _ 。那不行!

我就是这样做的:

mysqli_set_charset($Handle, 'utf8'); // <- add this too
mysqli_query($Handle, "SET NAMES 'utf8';");
mysqli_query($Handle, "SET CHARACTER SET 'utf8';");
mysqli_query($Handle, "SET COLLATION_CONNECTION = 'utf8_unicode_ci';");
// might be a bit redundant but it's safe :) ... I think :)

然后确保为其提供正确的UTF8。