将数据库字符集设置为latin,并将字符转码成gb2312

将字符长度打印出来发现:因为latin中一个字符占用2个字节,utf-8中一个字符占用3个字节,这样一来检索的时候就会出现错误
实验过程:
$sql = "select LENGTH(\"".$account."\") as Level from playerproperty_".$table_num." a limit 1;";

在php中使用这段代码,得到的结果是每个中文3字节,因为php中使用的是utf-8,而粘贴到mysql中发现只使用了2字节,查看mysql字符集

php+mysql中文无法检索出数据

所以设置如下

mysqli_set_charset($this->conn,"latin1");
mysqli_query($this->conn,"SET NAMES LATIN1;");

而在查询的时候加入转码

$account = iconv("utf-8", "gb2312", $user_account);

这样就好了

将数据库字符集设置为latin,并将字符转码成gb2312

将字符长度打印出来发现:因为latin中一个字符占用2个字节,utf-8中一个字符占用3个字节,这样一来检索的时候就会出现错误
实验过程:
$sql = "select LENGTH(\"".$account."\") as Level from playerproperty_".$table_num." a limit 1;";

在php中使用这段代码,得到的结果是每个中文3字节,因为php中使用的是utf-8,而粘贴到mysql中发现只使用了2字节,查看mysql字符集

php+mysql中文无法检索出数据

所以设置如下

mysqli_set_charset($this->conn,"latin1");
mysqli_query($this->conn,"SET NAMES LATIN1;");

而在查询的时候加入转码

$account = iconv("utf-8", "gb2312", $user_account);

这样就好了

相关文章:

  • 2021-12-13
  • 2021-11-07
  • 2022-12-23
  • 2022-12-23
  • 2021-08-14
  • 2022-03-05
猜你喜欢
  • 2021-09-15
  • 2022-12-23
  • 2021-07-08
  • 2021-04-16
  • 2021-05-31
  • 2021-10-01
  • 2021-06-21
相关资源
相似解决方案