# iconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

iconv — 字符串按要求的字符编码来转换

### 说明

iconv ( string `$in_charset` , string `$out_charset` , string `$str` ) : string

将字符串 `str` 从 `in_charset` 转换编码到 `out_charset`。

### 参数

`in_charset`

  输入的字符集。

`out_charset`

  输出的字符集。

  如果你在 `out_charset` 后添加了字符串 //TRANSLIT，将启用转写（transliteration）功能。这个意思是，当一个字符不能被目标字符集所表示时，它可以通过一个或多个形似的字符来近似表达。 如果你添加了字符串 //IGNORE，不能以目标字符集表达的字符将被默默丢弃。 否则，会导致一个 `E_NOTICE`并返回 `FALSE`。

  Caution

  //TRANSLIT 运行细节高度依赖于系统的 iconv() 实现（参见 `ICONV_IMPL`）。 据悉，某些系统上的实现会直接忽略 //TRANSLIT，所以转换也有可能失败，`out_charset` 会是不合格的。

`str`

  要转换的字符串。

### 返回值

返回转换后的字符串， 或者在失败时返回 `FALSE`。

### 更新日志

版本 | 说明
--- | ---
5.4.0 | 这个版本起，字符非法时候会返回 `FALSE`，除非在输出字符里指定了 //IGNORE 。 在之前版本，它会返回一部分字符串。

### 范例

Example #1 iconv() 例子

    <?php
    $text = "This is the Euro symbol '€'.";

    echo 'Original : ', $text, PHP_EOL;
    echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
    echo 'IGNORE   : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
    echo 'Plain    : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;

    ?>

以上例程的输出类似于：

    Original : This is the Euro symbol '€'.
    TRANSLIT : This is the Euro symbol 'EUR'.
    IGNORE   : This is the Euro symbol ''.
    Plain    :
    Notice: iconv(): Detected an illegal character in input string in .\iconv-example.php on line 7