php 数据库编码,PHP: mysqli::set_charset - Manual

The comment by Claude (http://php.net/manual/en/mysqli.set-charset.php#121067) is CORRECT.

Setting the charset (it's really the encoding) like this after setting up your connection:

$connection->set_charset("utf8mb4")

FAILS to set the proper collation for the connection:

character_set_client: utf8mb4

character_set_connection: utf8mb4

character_set_database: utf8mb4

character_set_filesystem: binary

character_set_results: utf8mb4

character_set_server: utf8mb4

character_set_system: utf8

collation_connection: utf8mb4_general_ci

collation_database: utf8mb4_unicode_ci

collation_server: utf8mb4_unicode_ci

If you use SET NAMES, that works:

$connection->query("SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci");

character_set_client: utf8mb4

character_set_connection: utf8mb4

character_set_database: utf8mb4

character_set_filesystem: binary

character_set_results: utf8mb4

character_set_server: utf8mb4

character_set_system: utf8

collation_connection: utf8mb4_unicode_ci

collation_database: utf8mb4_unicode_ci

collation_server: utf8mb4_unicode_ci

Please note, that I set the following variables on the server:

Set the following to be: utf8mb4_unicode_ci

character_set_client

character_set_connection

character_set_database

character_set_results

character_set_server

collation_connection

collation_server

Set:

character-set-client-handshake = FALSE or 0

skip-character-set-client-handshake = TRUE or 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值