Convert a string from one character encoding to another

# mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_encoding — Convert a string from one character encoding to another

### Description

mb_convert_encoding(array|string `$string`, string `$to_encoding`, array|string|null `$from_encoding` = `null`): array|string|false

Converts `string` from `from_encoding`, or the current internal encoding, to `to_encoding`. If `string` is an array, all its string values will be converted recursively.

### Parameters

`string`

  The string or array to be converted.

`to_encoding`

  The desired encoding of the result.

`from_encoding`

  The current encoding used to interpret `string`. Multiple encodings may be specified as an array or comma separated list, in which case the correct encoding will be guessed using the same algorithm as mb_detect_encoding().

  If `from_encoding` is omitted or `null`, the mbstring.internal_encoding setting will be used if set, otherwise the default_charset setting.

  See supported encodings for valid values of `to_encoding` and `from_encoding`.

### Return Values

The encoded string or array on success, or `false` on failure.

### Errors/Exceptions

As of PHP 8.0.0, a ValueError is thrown if the value of `to_encoding` or `from_encoding` is an invalid encoding. Prior to PHP 8.0.0, a `E_WARNING` was emitted instead.

### Changelog

Version | Description
--- | ---
8.2.0 | mb_convert_encoding() will no longer return the following non text encodings: `"Base64"`, `"QPrint"`, `"UUencode"`, `"HTML entities"`, `"7 bit"` and `"8 bit"`.
8.0.0 | mb_convert_encoding() will now throw a ValueError when `to_encoding` is passed an invalid encoding.
8.0.0 | mb_convert_encoding() will now throw a ValueError when `from_encoding` is passed an invalid encoding.
8.0.0 | `from_encoding` is nullable now.
7.2.0 | This function now also accepts an array as `string`. Formerly, only strings have been supported.

### Examples

Example #1 mb_convert_encoding() example

`<?php
/* Convert internal character encoding to SJIS */
$str = mb_convert_encoding($str, "SJIS");
/* Convert EUC-JP to UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");
/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");
/* If mbstring.language is "Japanese", "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>`

### See Also

- mb_detect_order() - Set/Get character encoding detection order
- UConverter::transcode() - Convert a string from one character encoding to another
- iconv() - Convert a string from one character encoding to another

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open