- 最近写一个小程序,用 PHP 的 mysqli 扩展连数据库的时候写入 mysql 数据库里面的内容中文字符始终是乱码。最终,发现我的 mysqli 缺省编码是 latin1 。
- 获取当前编码
- $charset = $mysqli->character_set_name();
- printf ("Current character set is %s\n", $charset);
- 设置缺省编码
- if (!$mysqli->set_charset("utf8")) {
- printf("Error loading character set utf8: %s\n", $mysqli->error);
- } else {
- printf("Current character set: %s\n", $mysqli->character_set_name());
- }
- 执行 SQL 语句
- $query = iconv('', 'UTF-8', $query);
- if (!$mysqli->query($query)) {
- printf("Error: %s\n", $mysqli->error);
转载于:https://my.oschina.net/zhangdapeng89/blog/50369