Title: wpdb::set_charset
Published: April 25, 2014
Last modified: February 24, 2026

---

# wpdb::set_charset( mysqli $dbh, string $charset = null, string $collate = null )

## In this article

 * [Parameters](https://developer.wordpress.org/reference/classes/wpdb/set_charset/?output_format=md#parameters)
 * [Source](https://developer.wordpress.org/reference/classes/wpdb/set_charset/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wpdb/set_charset/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wpdb/set_charset/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wpdb/set_charset/?output_format=md#wp--skip-link--target)

Sets the connection’s character set.

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wpdb/set_charset/?output_format=md#parameters)󠁿

 `$dbh`mysqlirequired

The connection returned by `mysqli_connect()`.

`$charset`stringoptional

The character set.

Default:`null`

`$collate`stringoptional

The collation.

Default:`null`

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wpdb/set_charset/?output_format=md#source)󠁿

    ```php
    public function set_charset( $dbh, $charset = null, $collate = null ) {
    	if ( ! isset( $charset ) ) {
    		$charset = $this->charset;
    	}
    	if ( ! isset( $collate ) ) {
    		$collate = $this->collate;
    	}
    	if ( $this->has_cap( 'collation' ) && ! empty( $charset ) ) {
    		$set_charset_succeeded = true;

    		if ( function_exists( 'mysqli_set_charset' ) && $this->has_cap( 'set_charset' ) ) {
    			$set_charset_succeeded = mysqli_set_charset( $dbh, $charset );
    		}

    		if ( $set_charset_succeeded ) {
    			$query = $this->prepare( 'SET NAMES %s', $charset );
    			if ( ! empty( $collate ) ) {
    				$query .= $this->prepare( ' COLLATE %s', $collate );
    			}
    			mysqli_query( $dbh, $query );
    		}
    	}
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wpdb.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/class-wpdb.php#L916)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/class-wpdb.php#L916-L938)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wpdb/set_charset/?output_format=md#related)󠁿

| Uses | Description | 
| [wpdb::has_cap()](https://developer.wordpress.org/reference/classes/wpdb/has_cap/)`wp-includes/class-wpdb.php` |

Determines whether the database or WPDB supports a particular feature.

  | 
| [wpdb::prepare()](https://developer.wordpress.org/reference/classes/wpdb/prepare/)`wp-includes/class-wpdb.php` |

Prepares a SQL query for safe execution.

  |

| Used by | Description | 
| [wpdb::db_connect()](https://developer.wordpress.org/reference/classes/wpdb/db_connect/)`wp-includes/class-wpdb.php` |

Connects to and selects database.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wpdb/set_charset/?output_format=md#changelog)󠁿

| Version | Description | 
| [3.1.0](https://developer.wordpress.org/reference/since/3.1.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwpdb%2Fset_charset%2F)
before being able to contribute a note or feedback.