# mbstring_binary_safe_encoding()

URL: https://chugunov.pro/api-wordpress/functions/mbstring_binary_safe_encoding/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 3.7.0.

## Сигнатура

```php
mbstring_binary_safe_encoding( bool $reset = false )
```

## Описание

Когда mbstring.func_overload используется для многобайтовых кодировок, результаты strlen() и подобных функций учитывают символы utf8, из-за чего для двоичных данных возвращается неверная длина.
Эта функция переопределяет кодировку mbstring на двоично-безопасную, а затем возвращает её к ожидаемой пользователем кодировке через функцию reset_mbstring_encoding.
Функцию можно вызывать рекурсивно, однако каждый вызов mbstring_binary_safe_encoding() должен сопровождаться таким же числом вызовов reset_mbstring_encoding().
Смотрите alsoreset_mbstring_encoding()

## Параметры

- `$reset` `bool` — необязательный, по умолчанию `false`. Нужно ли вернуть кодировку к ранее установленной.

## Исходный код

Файл: `wp-includes/functions.php:7688`

```php
function mbstring_binary_safe_encoding( $reset = false ) {
	static $encodings  = array();
	static $overloaded = null;

	if ( is_null( $overloaded ) ) {
		if ( function_exists( 'mb_internal_encoding' )
			&& ( (int) ini_get( 'mbstring.func_overload' ) & 2 ) // phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated
		) {
			$overloaded = true;
		} else {
			$overloaded = false;
		}
	}

	if ( false === $overloaded ) {
		return;
	}

	if ( ! $reset ) {
		$encoding = mb_internal_encoding();
		array_push( $encodings, $encoding );
		mb_internal_encoding( 'ISO-8859-1' );
	}

	if ( $reset && $encodings ) {
		$encoding = array_pop( $encodings );
		mb_internal_encoding( $encoding );
	}
}
```

## История изменений

- 3.7.0 — Introduced.

## Связанные

Используется в: [`verify_file_signature`](https://chugunov.pro/api-wordpress/functions/verify_file_signature/), `wpdb::strip_invalid_text`, `WP_Filesystem_FTPext::put_contents`, `WP_Filesystem_Direct::put_contents`, [`wp_read_image_metadata`](https://chugunov.pro/api-wordpress/functions/wp_read_image_metadata/), `WP_Filesystem_ftpsockets::dirlist`, `WP_Filesystem_ftpsockets::get_contents`, `WP_Filesystem_ftpsockets::put_contents`, [`_unzip_file_pclzip`](https://chugunov.pro/api-wordpress/functions/_unzip_file_pclzip/), [`seems_utf8`](https://chugunov.pro/api-wordpress/functions/seems_utf8/), [`utf8_uri_encode`](https://chugunov.pro/api-wordpress/functions/utf8_uri_encode/), `WP_Http::request`, [`reset_mbstring_encoding`](https://chugunov.pro/api-wordpress/functions/reset_mbstring_encoding/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/mbstring_binary_safe_encoding/
