Php/docs/mysqli.set-charset
mysqli::set_charset
mysqli_set_charset
(PHP 5 >= 5.0.5, PHP 7)
mysqli::set_charset -- mysqli_set_charset — 设置默认字符编码
说明
面向对象风格
mysqli::set_charset
( string $charset
) : bool
过程化风格
mysqli_set_charset
( mysqli $link
, string $charset
) : bool
设置在数据库间传输字符时所用的默认字符编码。
返回值
成功时返回 true
, 或者在失败时返回 false
。
注释
Note:
如果在Windows平台上使用该方法,需要4.1.11版或以上的MySQL客户端库,且MySQL版本为5.0.6以上。
Note:
这应该是首选的用于改变字符编码的方法,不建议使用mysqli_query()执行SQL请求的
SET NAMES ...
(如SET NAMES utf8
)。 详见MySQL字符集的概念
范例
Example #1 mysqli::set_charset() example
面向对象风格
<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "test");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}/* change character set to utf8 */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());}$mysqli->close();?>
过程化风格
<?php$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}/* change character set to utf8 */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));}mysqli_close($link);?>
以上例程会输出:
Current character set: utf8
参见
- mysqli_character_set_name() - 返回当前数据库连接的默认字符编码
- mysqli_real_escape_string() - 根据当前连接的字符集,对于 SQL 语句中的特殊字符进行转义
- » 关于MySQL支持字符集的列表