Inhaltsverzeichnis
string iconv ( string in_charset, string out_charset, string str ) 
Heim Backend-Entwicklung PHP-Tutorial php字符串编码转换 iconv与mb_convert_encoding的区别

php字符串编码转换 iconv与mb_convert_encoding的区别

Jun 20, 2016 pm 01:02 PM
php字符串

​PHP判断字符串编码函数mb_detect_encoding总结

iconv — Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5)

mb_convert_encoding — Convert character encoding(PHP 4 >= 4.0.6, PHP 5)
 

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

这两个函数功能类似都是用来转换字符串编码的;

用法:

string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] ) 


注:需要先启用 mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉

 

参数:str——要编码的str、to_encoding——str要转换成编码类型、from_encoding——在转换前通过字符代码名称来指定。 它可以是一个 array 也可以是逗号分隔的枚举列表。 如果没有提供 from_encoding,则会使用内部(internal)编码。 参见支持的编码。

 

支持的字符编码

当前 mbstring 模块支持以下的字符编码。这些字符编码中的任意一个都能指定到 mbstring 函数中的 encoding 参数。

该 PHP 扩展支持的字符编码有以下几种:

    UCS-4*
    UCS-4BE
    UCS-4LE*
    UCS-2
    UCS-2BE
    UCS-2LE
    UTF-32*
    UTF-32BE*
    UTF-32LE*
    UTF-16*
    UTF-16BE*
    UTF-16LE*
    UTF-7
    UTF7-IMAP
    UTF-8*
    ASCII*
    EUC-JP*
    SJIS*
    eucJP-win*
    SJIS-win*
    ISO-2022-JP
    ISO-2022-JP-MS
    CP932
    CP51932
    SJIS-mac** (别名: MacJapanese)
    SJIS-Mobile#DOCOMO** (别名: SJIS-DOCOMO)
    SJIS-Mobile#KDDI** (别名: SJIS-KDDI)
    SJIS-Mobile#SOFTBANK** (别名: SJIS-SOFTBANK)
    UTF-8-Mobile#DOCOMO** (别名: UTF-8-DOCOMO)
    UTF-8-Mobile#KDDI-A**
    UTF-8-Mobile#KDDI-B** (别名: UTF-8-KDDI)
    UTF-8-Mobile#SOFTBANK** (别名: UTF-8-SOFTBANK)
    ISO-2022-JP-MOBILE#KDDI** (别名: ISO-2022-JP-KDDI)
    JIS
    JIS-ms
    CP50220
    CP50220raw
    CP50221
    CP50222
    ISO-8859-1*
    ISO-8859-2*
    ISO-8859-3*
    ISO-8859-4*
    ISO-8859-5*
    ISO-8859-6*
    ISO-8859-7*
    ISO-8859-8*
    ISO-8859-9*
    ISO-8859-10*
    ISO-8859-13*
    ISO-8859-14*
    ISO-8859-15*
    byte2be
    byte2le
    byte4be
    byte4le
    BASE64
    HTML-ENTITIES
    7bit
    8bit
    EUC-CN*
    CP936
    GB18030**
    HZ
    EUC-TW*
    CP950
    BIG-5*
    EUC-KR*
    UHC (CP949)
    ISO-2022-KR
    Windows-1251 (CP1251)
    Windows-1252 (CP1252)
    CP866 (IBM866)
    KOI8-R*

* 表示该编码也可以在正则表达式中使用。

** 表示该编码自 PHP 5.4.0 始可用。

任何接受编码名称的 php.ini 条目同样也可以使用 "auto" 和 "pass" 的值。 接受编码名的 mbstring 函数同样也可以使用值 "auto"。

如果设置了 "pass",将不会对字符的编码进行转化。

如果设置了 "auto",它将扩展成 NLS 中定义的每个字符编码列表。 比如,假设 NLS 设置为 Japanese,值将会认为是 "ASCII,JIS,UTF-8,EUC-JP,SJIS"。

NLS:国家语言支持(National Language Support)

string iconv ( string in_charset, string out_charset, string str ) 

注意:
第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,
其中:
//TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,
//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。
Returns the converted string or FALSE on failure. (返回转换后的字符串;如果执行失败将返回FALSE。)

使用:

1. 发现iconv在转换字符 "-" 到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。不管怎么样,这个 "-" 都无法转换成功,无法输出。 另外mb_convert_encoding没有这个bug。

2. mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别, 但是执行效率比iconv差太多;如:
$str = mb_convert_encoding($str,"euc-jp","ASCII,JIS,EUC-JP,SJIS,UTF-8");“ASCII,JIS,EUC-JP,SJIS,UTF-8”的顺序不同效果也有差异 。

3. 一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数 。

from_encoding is specified by character code name before conversion. it can be array or string - comma separated
enumerated list. If it is not specified, the internal encoding will be used.

$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");
$str = mb_convert_encoding($str, "EUC-JP', " auto");

例子:

$content = iconv("GBK", "UTF-8", $content);
$content = mb_convert_encoding($content, "UTF-8", "GBK");

 

 

/* 转换内部编码为 SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* 将 EUC-JP 转换成 UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* 从 JIS, eucjp-win, sjis-win 中自动检测编码,并转换 str 到 UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* "auto" 扩展成 "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");

Nach dem Login kopieren

$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
This is the Euro symbol '    
 
Nach dem Login kopieren


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So konvertieren Sie Zeichen in PHP in ASCII-Code So konvertieren Sie Zeichen in PHP in ASCII-Code Mar 03, 2023 pm 06:55 PM

In PHP können Sie die Funktion ord() verwenden, um Zeichen in ASCII-Code umzuwandeln. Diese Funktion kann den ASCII-Wert eines einzelnen Zeichens oder des ersten Zeichens in einer Zeichenfolge zurückgeben In der Syntax „ord (string)“ darf der Parameter „string“ nicht weggelassen werden, es handelt sich um den String (oder das einzelne Zeichen), aus dem der ASCII-Wert ermittelt werden soll.

So ersetzen Sie ein bestimmtes Zeichen in einem PHP-String durch ein leeres Zeichen So ersetzen Sie ein bestimmtes Zeichen in einem PHP-String durch ein leeres Zeichen Mar 06, 2023 pm 06:39 PM

Es gibt zwei Möglichkeiten, ein bestimmtes Zeichen in einem PHP-String durch ein Nullzeichen zu ersetzen: 1. Verwenden Sie die Funktion str_replace(), um das angegebene Zeichen durch ein Nullzeichen zu ersetzen. Sie müssen nur den ersten Parameter auf das angegebene Zeichen und das. setzen zweiter Parameter zu einem Nullzeichen. Syntax "str_replace("angegebenes Zeichen", $str)" 2. Verwenden Sie die Funktion preg_replace() mit regulären Ausdrücken, um das angegebene Zeichen abzugleichen und es durch das Nullzeichen zu ersetzen. preg_replace('/angegebenes Zeichen/', "",$str)".

So entfernen Sie alle Großbuchstaben aus einer Zeichenfolge in PHP So entfernen Sie alle Großbuchstaben aus einer Zeichenfolge in PHP Sep 26, 2022 pm 07:59 PM

Zwei Entfernungsmethoden: 1. Verwenden Sie preg_replace(), um einen regulären Ausdruck auszuführen, um nach allen Großbuchstaben zu suchen und diese durch Nullzeichen zu ersetzen. Die Syntax lautet „preg_replace('/[A-Z]/','',$str)“. 2. Verwenden Sie preg_filter(), um einen regulären Ausdruck auszuführen, um nach allen Großbuchstaben zu suchen und diese durch Leerzeichen zu ersetzen. Die Syntax lautet „preg_filter('/[A-Z]/','',$str)“.

So entfernen Sie linke und rechte Zeichen aus einer Zeichenfolge in PHP So entfernen Sie linke und rechte Zeichen aus einer Zeichenfolge in PHP Mar 27, 2023 pm 03:29 PM

PHP ist eine typisierte Programmiersprache, die häufig zur Entwicklung von Webanwendungen verwendet wird. Während der Webentwicklung müssen Sie möglicherweise verschiedene Vorgänge an Zeichenfolgen ausführen, z. B. das Entfernen bestimmter Zeichen aus einer Zeichenfolge, das Beibehalten von Zahlen oder Buchstaben in einer Zeichenfolge usw. In diesem Artikel konzentrieren wir uns darauf, wie man bestimmte Zeichen auf der linken oder rechten Seite einer Zeichenfolge in PHP entfernt.

So extrahieren Sie nur chinesische Zeichen aus einem PHP-String So extrahieren Sie nur chinesische Zeichen aus einem PHP-String Sep 22, 2022 pm 07:44 PM

Zwei Methoden: 1. Verwenden Sie preg_match_all() mit regulären Filterzeichenfolgen. Die Syntax lautet „preg_match_all(“/[\x{4e00}-\x{9fff}]+/u“, „$str“, $arr);“ ;2. Verwenden Sie preg_replace() mit der regulären Suche nach nicht-chinesischen Buchstaben in der Zeichenfolge und ersetzen Sie diese durch leere Zeichen. Die Syntax ist „preg_replace(“/[^\x{4E00}-\x{9FFF}]+/u " ,'',$str)".

Ist es möglich, in PHP Zeichen zu einer Zeichenfolge hinzuzufügen? Ist es möglich, in PHP Zeichen zu einer Zeichenfolge hinzuzufügen? Aug 19, 2022 pm 07:51 PM

PHP kann Zeichen zu Zeichenfolgen hinzufügen. Zwei Implementierungsmethoden: 1. Verwenden Sie den String-Konnektor „.“ um das angegebene Zeichen an den Anfang oder das Ende des Strings zu binden. Die Syntax lautet „angegebenes Zeichen. string“ oder „string. angegebenes Zeichen“. )-Funktion fügt das angegebene Zeichen an der angegebenen Position in der Zeichenfolge ein. Die Syntax lautet „substr_replace(string, angegebenes Zeichen, angegebene Position, 0)“. Der Wert an der angegebenen Position kann 0, negativ oder positiv sein.

So entfernen Sie doppelte Anführungszeichen aus einer Zeichenfolge in PHP So entfernen Sie doppelte Anführungszeichen aus einer Zeichenfolge in PHP Mar 28, 2023 pm 04:54 PM

PHP ist eine sehr beliebte Programmiersprache und eines der bevorzugten Tools zum Erstellen dynamischer Websites. In der PHP-Entwicklung müssen wir häufig Zeichenfolgen verarbeiten, und eine häufige Anforderung besteht darin, doppelte Anführungszeichen aus Zeichenfolgen zu entfernen. In diesem Artikel stellen wir einige Methoden zum Entfernen doppelter Anführungszeichen aus PHP-Strings vor.

So sortieren Sie Strings in PHP So sortieren Sie Strings in PHP Sep 08, 2022 pm 08:02 PM

Implementierungsschritte: 1. Verwenden Sie die Funktion str_split(), um die Zeichenfolge in ein Zeichenarray umzuwandeln. Die Syntax lautet „str_split(string)“. 2. Verwenden Sie die Funktion asort() oder arsort(), um das Zeichenarray in aufsteigender Reihenfolge zu sortieren absteigende Reihenfolge, die Syntax „asort (character array)“ oder „arsort (character array)“ 3. Verwenden Sie die Funktion implode(), um das sortierte Zeichenarray zurück in eine Zeichenfolge umzuwandeln, die Syntax lautet „implode (sortiertes Zeichenarray)“; ".

See all articles