mysqli::set_charset

mysqli_set_charset

Sets the client character set

&reftitle.description;

&style.oop;

public `bool` `mysqli::set_charset` `string` `charset`

&style.procedural;

`bool` `mysqli_set_charset` `mysqli` `mysql` `string` `charset`

Sets the character set to be used when sending data from and to the database server.

&reftitle.parameters;

&mysqli.link.description;

`charset`

- The desired character set.

&reftitle.returnvalues;

&return.success;

&reftitle.errors; &mysqli.conditionalexception;
&reftitle.examples;

### `mysqli::set_charset` example

&style.oop;

    <?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());

&style.procedural;

    <?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));

&examples.outputs.similar;

    Initial character set: latin1
    Current character set: utf8mb4

&reftitle.notes;

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.

&reftitle.seealso;

- `mysqli_character_set_name`
- `mysqli_real_escape_string`
- MySQL character set concepts
- List of character sets that MySQL supports