1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
archived-doc-ru/reference/strings/functions/utf8-encode.xml
Mikhail Alferov d96db32b2d Update 9b1673cf114a1e10c4563ab9223cb56aed552b89 to En (#1009)
* Update date-sunrise.xml

* Update date-sunset.xml

* Update date-sunrise.xml

* Update gmstrftime.xml

* Update strftime.xml

* Update strptime.xml

* Update enchant-broker-free-dict.xml

* Update enchant-broker-free.xml

* Update enchant-broker-get-dict-path.xml

* Update enchant-broker-set-dict-path.xml

* Update libxml-disable-entity-loader.xml

* Update mhash-count.xml

* Update mhash-get-block-size.xml

* Update mhash-get-hash-name.xml

* Update mhash-keygen-s2k.xml

* Update mhash.xml

* Update get-client-info.xml

* Update init.xml

* Update kill.xml

* Update ping.xml

* Update refresh.xml

* Update openssl-free-key.xml

* Update openssl-pkey-free.xml

* Update openssl-x509-free.xml

* Update lcg-value.xml

* Update isdisabled.xml

* Update getclass.xml

* Update isarray.xml

* Update isarray.xml amend the code example

* Update iscallable.xml

* Update shmop-close.xml

* Update shmop-close.xml Add the missing block

* Update wakeup.xml

* Update utf8-decode.xml

* Update utf8-decode.xml

* Update utf8-encode.xml

* Update utf8-decode.xml

* Update odbc-result-all.xml

* Update xml-set-object.xml

* Update zip-close.xml

* Update zip-entry-close.xml

* Update zip-entry-compressedsize.xml

* Update zip-entry-compressionmethod.xml

* Update zip-entry-filesize.xml

* Update zip-entry-name.xml

* Update zip-entry-open.xml

* Update zip-entry-read.xml

* Update zip-open.xml

* Update zip-read.xml
2024-12-02 07:09:11 +03:00

244 lines
8.4 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9b1673cf114a1e10c4563ab9223cb56aed552b89 Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.utf8-encode" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>utf8_encode</refname>
<refpurpose>Преобразовывает строку из кодировки ISO-8859-1 в кодировку UTF-8</refpurpose>
</refnamediv>
<refsynopsisdiv>
&warn.deprecated.function-8-2-0;
</refsynopsisdiv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier role="attribute">#[\Deprecated]</modifier>
<type>string</type><methodname>utf8_encode</methodname>
<methodparam><type>string</type><parameter>string</parameter></methodparam>
</methodsynopsis>
<para>
Функция преобразовывает строку <parameter>string</parameter> из кодировки
<literal>ISO-8859-1</literal> в кодировку <literal>UTF-8</literal>.
</para>
<note>
<para>
Функция не пытается угадать текущую кодировку предоставленной строки, а предполагает,
что строку закодировали в кодировке ISO-8859-1 (которую также знают как Latin 1) и преобразовывает строку в кодировку UTF-8.
Поскольку каждая последовательность байтов — корректная строка в кодировке ISO-8859-1,
это никогда не приводит к ошибке, но не приведёт к получению полезной строки,
если предполагалась другая кодировка.
</para>
<para>
Часто веб-страницы, которые отметили как страницы в кодировке
<literal>ISO-8859-1</literal>, кодируются похожей кодировкой —
<literal>Windows-1252</literal>, и браузеры интерпретируют
страницы в кодировке <literal>ISO-8859-1</literal> как страницы в кодировке <literal>Windows-1252</literal>.
Однако кодировка <literal>Windows-1252</literal> вместо управляющих кодов
кодировки <literal>ISO-8859-1</literal> содержит дополнительные печатные
символы наподобие знака евро <literal></literal> и английских двойных кавычек
<literal></literal> <literal></literal>. Функция не конвертирует такие символы
кодировки <literal>Windows-1252</literal> корректно. Для конвертации в кодировку
<literal>Windows-1252</literal> пользуются альтернативными функциями.
</para>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
Строка в кодировке ISO-8859-1.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает строку <parameter>string</parameter>, которую преобразовала в кодировку в UTF-8.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.2.0</entry>
<entry>
Функция устарела.
</entry>
</row>
<row>
<entry>7.2.0</entry>
<entry>
Функцию перенесли из модуля XML в ядро PHP.
В предыдущих версиях функция была доступна только при установленном модуле XML.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title>Простой пример преобразования строки из кодировки ISO-8859-1 в кодировку UTF-8</title>
<programlisting role="php">
<![CDATA[
<?php
// Преобразование строки 'Zoë' из кодировки ISO 8859-1 в кодировку UTF-8
$iso8859_1_string = "\x5A\x6F\xEB";
$utf8_string = utf8_encode($iso8859_1_string);
echo bin2hex($utf8_string), "\n";
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
5a6fc3ab
]]>
</screen>
</example>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>Устаревание и альтернативы</title>
<para>
Начиная с PHP 8.2.0 функция <emphasis>устарела</emphasis> и её удалят в будущей версии.
Разработчики языка рекомендуют заменить вызовы функции в коде альтернативами.
</para>
<para>
Аналогичную функциональность даёт функция <function>mb_convert_encoding</function>,
которая поддерживает кодировку ISO-8859-1 и набор других кодировок символов.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$iso8859_1_string = "\xEB"; // Символ "ë" — буква «e» с диерезисом в кодировке UTF-8
$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";
$iso8859_7_string = "\xEB"; // Та же строка в кодировке ISO-8859-7 представляет символ «λ» — греческую строчную лямбду
$utf8_string = mb_convert_encoding($iso8859_7_string, 'UTF-8', 'ISO-8859-7');
echo bin2hex($utf8_string), "\n";
$windows_1252_string = "\x80"; // Символ "€" — знак евро в кодировке Windows-1252, не содержится в кодировке ISO-8859-1
$utf8_string = mb_convert_encoding($windows_1252_string, 'UTF-8', 'Windows-1252');
echo bin2hex($utf8_string), "\n";
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
c3ab
cebb
e282ac
]]>
</screen>
</informalexample>
</para>
<para>
Другие способы, доступность которых зависит от загруженных модулей, —
метод <methodname>UConverter::transcode</methodname> и функция <function>iconv</function>.
</para>
<para>
Каждый следующий способ даёт один и тот же результат:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$iso8859_1_string = "\x5A\x6F\xEB"; // 'Zoë' в кодировке 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";
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
5a6fc3ab
5a6fc3ab
5a6fc3ab
5a6fc3ab
]]>
</screen>
</informalexample>
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>utf8_decode</function></member>
<member><function>mb_convert_encoding</function></member>
<member><methodname>UConverter::transcode</methodname></member>
<member><function>iconv</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->