PHP.mk документација

utf8_encode

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.utf8-encode.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.utf8-encode.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
utf8_encode

Референца за `function.utf8-encode.php` со подобрена типографија и навигација.

function.utf8-encode.php

utf8_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_encodeКонвертира стринг од ISO-8859-1 во UTF-8

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Оваа функција е DEPRECATED Конвертира стринг од UTF-8 во ISO-8859-1, заменувајќи ги невалидните или неможно претставливите знаци

= NULL

од PHP 8.2.0. Силно се обесхрабрува потпирањето на оваа функција. string Оваа функција го конвертира стрингот ISO-8859-1 од UTF-8.

Забелешка:

Оваа функција не се обидува да ја погоди моменталната кодировка на дадениот стринг, таа претпоставува дека е кодиран како ISO-8859-1 (познат и како "Latin 1") и конвертира во UTF-8. Бидејќи секоја секвенца од бајти е валиден ISO-8859-1 стринг, ова никогаш не резултира со грешка, но нема да резултира со корисен стринг ако била наменета друга кодировка.

) се заменуваат со ISO-8859-1 Многу веб-страници означени како што користат Windows-1252 кодирање на знаци всушност користат слично ISO-8859-1 кодирање, а веб-прелистувачите ќе ги толкуваат Windows-1252. Windows-1252 веб-страници какодополнителни печатени знаци, како што се знакот за евро ( ) и извиткани наводници ( ISO-8859-1 ), наместо одредени Windows-1252 контролни знаци. Оваа функција нема правилно да ги конвертира таквите Windows-1252 знаци. Користете друга функција ако

Параметри

string

ISO-8859-1 стринг.

Вратени вредности

Враќа UTF-8 превод од string.

Дневник на промени

Верзија = NULL
8.2.0 Користењето null за dir_handle сега е застарено. Наместо тоа, треба експлицитно да се обезбеди последниот отворен рачка на директориумот.
7.2.0 Оваа функција е преместена од XML екстензијата во јадрото на PHP. Во претходните верзии, беше достапна само ако беше инсталирана XML екстензијата.

Примери

Пример #1 Основен пример

<?php
// Convert the string 'Zoë' from ISO 8859-1 to UTF-8
$iso8859_1_string = "\x5A\x6F\xEB";
$utf8_string = utf8_encode($iso8859_1_string);
echo
bin2hex($utf8_string), "\n";
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

5a6fc3ab

Белешки

Забелешка: Застареност и алтернативи

Оваа функција е deprecated од PHP 8.2.0, и ќе биде отстранета во идна верзија. Постоечките употреби треба да се проверат и заменат со соодветни алтернативи.

Слична функционалност може да се постигне со mb_convert_encoding(), што поддржува ISO-8859-1 и многу други кодови на знаци.

<?php
$iso8859_1_string
= "\xEB"; // 'ë' (e with diaeresis) in ISO-8859-1
$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo
bin2hex($utf8_string), "\n";

$iso8859_7_string = "\xEB"; // the same string in ISO-8859-7 represents 'λ' (Greek lower-case lambda)
$utf8_string = mb_convert_encoding($iso8859_7_string, 'UTF-8', 'ISO-8859-7');
echo
bin2hex($utf8_string), "\n";

$windows_1252_string = "\x80"; // '€' (Euro sign) in Windows-1252, but not in ISO-8859-1
$utf8_string = mb_convert_encoding($windows_1252_string, 'UTF-8', 'Windows-1252');
echo
bin2hex($utf8_string), "\n";
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

c3ab
cebb
e282ac

Други опции кои може да бидат достапни во зависност од инсталираните екстензии се GNU Recode документацијата на вашата инсталација за детални инструкции за барања за прекодирање. and iconv().

Следново дава ист резултат:

<?php
$iso8859_1_string
= "\x5A\x6F\xEB"; // 'Zoë' in ISO-8859-1

$utf8_string = utf8_encode($iso8859_1_string);
echo
bin2hex($utf8_string), "\n";

$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo
bin2hex($utf8_string), "\n";

$utf8_string = UConverter::transcode($iso8859_1_string, 'UTF8', 'ISO-8859-1');
echo
bin2hex($utf8_string), "\n";

$utf8_string = iconv('ISO-8859-1', 'UTF-8', $iso8859_1_string);
echo
bin2hex($utf8_string), "\n";
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

5a6fc3ab
5a6fc3ab
5a6fc3ab
5a6fc3ab

Види Исто така

Белешки од корисници 3 белешки

deceze на gmail точка com
пред 14 години
Please note that utf8_encode only converts a string encoded in ISO-8859-1 to UTF-8. A more appropriate name for it would be "iso88591_to_utf8". If your text is not encoded in  ISO-8859-1, you do not need this function. If your text is already in UTF-8, you do not need this function. In fact, applying this function to text that is not encoded in ISO-8859-1 will most likely simply garble that text.

If you need to convert text from any encoding to any other encoding, look at iconv() instead.
Aidan Kehoe <php-manual at parhasard dot net>
21 години пред
Here's some code that addresses the issue that Steven describes in the previous comment; 

<?php

/* This structure encodes the difference between ISO-8859-1 and Windows-1252,
   as a map from the UTF-8 encoding of some ISO-8859-1 control characters to
   the UTF-8 encoding of the non-control characters that Windows-1252 places
   at the equivalent code points. */

$cp1252_map = array(
    "\xc2\x80" => "\xe2\x82\xac", /* EURO SIGN */
    "\xc2\x82" => "\xe2\x80\x9a", /* SINGLE LOW-9 QUOTATION MARK */
    "\xc2\x83" => "\xc6\x92",     /* LATIN SMALL LETTER F WITH HOOK */
    "\xc2\x84" => "\xe2\x80\x9e", /* DOUBLE LOW-9 QUOTATION MARK */
    "\xc2\x85" => "\xe2\x80\xa6", /* HORIZONTAL ELLIPSIS */
    "\xc2\x86" => "\xe2\x80\xa0", /* DAGGER */
    "\xc2\x87" => "\xe2\x80\xa1", /* DOUBLE DAGGER */
    "\xc2\x88" => "\xcb\x86",     /* MODIFIER LETTER CIRCUMFLEX ACCENT */
    "\xc2\x89" => "\xe2\x80\xb0", /* PER MILLE SIGN */
    "\xc2\x8a" => "\xc5\xa0",     /* LATIN CAPITAL LETTER S WITH CARON */
    "\xc2\x8b" => "\xe2\x80\xb9", /* SINGLE LEFT-POINTING ANGLE QUOTATION */
    "\xc2\x8c" => "\xc5\x92",     /* LATIN CAPITAL LIGATURE OE */
    "\xc2\x8e" => "\xc5\xbd",     /* LATIN CAPITAL LETTER Z WITH CARON */
    "\xc2\x91" => "\xe2\x80\x98", /* LEFT SINGLE QUOTATION MARK */
    "\xc2\x92" => "\xe2\x80\x99", /* RIGHT SINGLE QUOTATION MARK */
    "\xc2\x93" => "\xe2\x80\x9c", /* LEFT DOUBLE QUOTATION MARK */
    "\xc2\x94" => "\xe2\x80\x9d", /* RIGHT DOUBLE QUOTATION MARK */
    "\xc2\x95" => "\xe2\x80\xa2", /* BULLET */
    "\xc2\x96" => "\xe2\x80\x93", /* EN DASH */
    "\xc2\x97" => "\xe2\x80\x94", /* EM DASH */

    "\xc2\x98" => "\xcb\x9c",     /* SMALL TILDE */
    "\xc2\x99" => "\xe2\x84\xa2", /* TRADE MARK SIGN */
    "\xc2\x9a" => "\xc5\xa1",     /* LATIN SMALL LETTER S WITH CARON */
    "\xc2\x9b" => "\xe2\x80\xba", /* SINGLE RIGHT-POINTING ANGLE QUOTATION*/
    "\xc2\x9c" => "\xc5\x93",     /* LATIN SMALL LIGATURE OE */
    "\xc2\x9e" => "\xc5\xbe",     /* LATIN SMALL LETTER Z WITH CARON */
    "\xc2\x9f" => "\xc5\xb8"      /* LATIN CAPITAL LETTER Y WITH DIAERESIS*/
);

function cp1252_to_utf8($str) {
        global $cp1252_map; 
        return  strtr(utf8_encode($str), $cp1252_map);
}

?>
Mark AT modernbill DOT com
21 години пред
If you haven't guessed already: If the UTF-8 character has no representation in the ISO-8859-1 codepage, a ? will be returned. You might want to wrap a function around this to make sure you aren't saving a bunch of ???? into your database.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.