Copyright 1997-2022 the PHP Documentation Group.
mysqli::set_charset
mysqli_set_charset
Sets the client character set
Description
Object-oriented style
public bool mysqli::set_charset(string charset);
Procedural style
bool mysqli_set_charset(mysqli mysql,
string charset);
Sets the character set to be used when sending data from and to the database server.
Parameters
-
mysql
Procedural style only: A
mysqli
object returned bymysqli_connect
ormysqli_init
-
charset
The desired character set.
Return Values
Returns true
on success or
false
on failure.
Examples
Example 7.71 mysqli::set_charset
example
Object-oriented style
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
printf("Initial character set: %s\n", $mysqli->character_set_name());
/* change character set to utf8mb4 */
$mysqli->set_charset("utf8mb4");
printf("Current character set: %s\n", $mysqli->character_set_name());
Procedural style
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');
printf("Initial character set: %s\n", mysqli_character_set_name($link));
/* change character set to utf8mb4 */
mysqli_set_charset($link, "utf8mb4");
printf("Current character set: %s\n", mysqli_character_set_name($link));
The above examples will output something similar to:
Initial character set: latin1 Current character set: utf8mb4
Notes
To use this function on a Windows platform you need MySQL client library version 4.1.11 or above (for MySQL 5.0 you need 5.0.6 or above).
This is the preferred way to change the charset. Using
mysqli_query
to set it (such as SET NAMES utf8
) is not
recommended. See the
MySQL
character set concepts section for more information.
See Also
mysqli_character_set_name
|
mysqli_real_escape_string
|
MySQL character set concepts |
List of character sets that MySQL supports |