-
Notifications
You must be signed in to change notification settings - Fork 61
Expand file tree
/
Copy pathutf8-encode.xml
More file actions
222 lines (206 loc) · 6.44 KB
/
Copy pathutf8-encode.xml
File metadata and controls
222 lines (206 loc) · 6.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 9b1673cf114a1e10c4563ab9223cb56aed552b89 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.utf8-encode" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>utf8_encode</refname>
<refpurpose>Convierte una cadena ISO-8859-1 a 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>
Esta función convierte la cadena <parameter>string</parameter> desde
la codificación <literal>ISO-8859-1</literal> a <literal>UTF-8</literal>.
</para>
<note>
<para>
Esta función no intenta adivinar la codificación actual de la cadena de caracteres
proporcionada, asume que está codificada en ISO-8859-1 (también conocido como
"Latin 1") y la convierte a UTF-8. Dado que cada secuencia de bytes es una cadena
de caracteres ISO-8859-1 válida, nunca habrá errores, pero no resultará
en una cadena de caracteres útil si se esperaba una codificación diferente.
</para>
<para>
Muchas páginas web marcadas como que utilizan la codificación de caracteres
<literal>ISO-8859-1</literal> utilizan efectivamente una codificación similar
a <literal>Windows-1252</literal>, y los navegadores web interpretarán
las páginas web <literal>ISO-8859-1</literal> como
<literal>Windows-1252</literal>. Las características adicionales
de <literal>Windows-1252</literal> son caracteres imprimibles,
tales como el signo euro (<literal>€</literal>) y las comillas curvas
(<literal>“</literal> <literal>”</literal>), en lugar de algunos
caracteres de control de <literal>ISO-8859-1</literal>. Esta función
no convertirá estos caracteres <literal>Windows-1252</literal>
correctamente. Utilice una función diferente si se necesita una conversión
<literal>Windows-1252</literal>.
</para>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
Una cadena ISO-8859-1.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve la versión UTF-8 de <parameter>string</parameter>.
</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>
Esta función ha sido declarada obsoleta.
</entry>
</row>
<row>
<entry>7.2.0</entry>
<entry>
Esta función fue movida al núcleo de PHP,
anteriormente, era necesario instalar la extensión XML
para utilizarla.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title>Ejemplo de uso</title>
<programlisting role="php">
<![CDATA[
<?php
// Convierte la cadena 'Zoë' de ISO 8859-1 a 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">
<title>Notas</title>
<note>
<title>Obsolescencia y alternativas</title>
<para>
Esta función está <emphasis>obsoleta</emphasis> a partir de PHP 8.2.0
y será eliminada en una versión futura. Los usos existentes deberían ser verificados
y reemplazados por alternativas apropiadas.
</para>
<para>
Una funcionalidad similar puede ser obtenida con <function>mb_convert_encoding</function>,
que soporta ISO-8859-1 y muchos otros juegos de caracteres.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$iso8859_1_string = "\xEB"; // 'ë' (e con diéresis) en 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"; // la misma cadena en ISO-8859-7 representa 'λ' (lambda minúscula griega)
$utf8_string = mb_convert_encoding($iso8859_7_string, 'UTF-8', 'ISO-8859-7');
echo bin2hex($utf8_string), "\n";
$windows_1252_string = "\x80"; // '€' (signo euro) en Windows-1252, pero no en 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>
Otras opciones pueden estar disponibles dependiendo de las extensiones instaladas,
tales como <methodname>UConverter::transcode</methodname> y <function>iconv</function>.
</para>
<para>
Los siguientes ejemplos dan todos el mismo resultado:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$iso8859_1_string = "\x5A\x6F\xEB"; // 'Zoë' en 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>