<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration71.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'migration71.windows-support.php',
    1 => 'Soporte para Windows',
    2 => 'Soporte para Windows',
  ),
  'up' => 
  array (
    0 => 'migration71.php',
    1 => 'Migraci&oacute;n de PHP 7.0.x a PHP 7.1.x',
  ),
  'prev' => 
  array (
    0 => 'migration71.other-changes.php',
    1 => 'Otros cambios',
  ),
  'next' => 
  array (
    0 => 'migration70.php',
    1 => 'Migraci&oacute;n de PHP 5.6.x a PHP 7.0.x',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'appendices/migration71/windows-support.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration71.windows-support" class="sect1">
 <h2 class="title">Soporte para Windows</h2>

 <div class="sect2" id="migration71.windows-support.long-and-utf8-path">
  <h3 class="title">Soporte para rutas largas y UTF-8</h3>
  <p class="para">
   Si una aplicación web es conforme a UTF-8, no se requiere ninguna acción adicional.
   Para aplicaciones que dependen de rutas en una codificación diferente a UTF-8 para la I/O,
   una directiva INI debe ser definida explícitamente. La verificación de los parámetros de codificación INI
   se basa en el orden en la memoria (core):
  </p>
  <ul class="itemizedlist">
   <li class="listitem">
    <span class="simpara">
     internal_encoding
    </span>
   </li>
    <li class="listitem">
    <span class="simpara">
     default_charset
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     zend.multibyte
    </span>
   </li>
  </ul>
  <p class="para">
   Se han introducido varias funciones para la gestión de las páginas de códigos:
  </p>
      <ul class="itemizedlist">
       <li class="listitem">
        <span class="simpara">
         sapi_windows_cp_set() para establecer la página de códigos predeterminada
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         sapi_windows_cp_get() para recuperar la página de códigos actual
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         sapi_windows_cp_is_utf8()
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         sapi_windows_cp_conv() para convertir entre páginas de códigos, utilizando una firma compatible con iconv()
        </span>
       </li>
      </ul>
  <p class="para">
   Estas funciones son seguras para subprocesos múltiples.
  </p>
  <p class="para">
   La salida de la página de códigos de la consola se ajusta en función de la codificación utilizada
   en PHP. Dependiendo de la página de códigos OEM del sistema concreto, la salida visible
   podría o no ser correcta. Por ejemplo, con cmd.exe por defecto y en un sistema con la página de códigos OEM 437, las salidas en las páginas de códigos 1251,
   1252, 1253 y otras pueden mostrarse correctamente utilizando UTF-8.
   En los mismos sistemas, los caracteres en páginas de códigos como 20932 probablemente no se mostrarán correctamente.
   Esto se refiere a las reglas del sistema para páginas de códigos, la compatibilidad de la fuente y la elección del programa de consola utilizado.
   PHP define automáticamente la página de códigos de la consola de acuerdo con las reglas de codificación desde php.ini. Utilizar consolas alternativas en lugar de
   cmd.exe directamente podría ofrecer una mejor experiencia en algunos casos.
  </p>
  <p class="para">
   Sin embargo, tenga en cuenta que cambiar la página de códigos después de que la solicitud haya comenzado
   puede causar efectos secundarios inesperados en CLI. La manera preferible es a través de php.ini.
   Cuando PHP CLI se utiliza en un emulador de consola que no soporta Unicode, es posiblemente necesario
   evitar cambiar la página de códigos de la consola. La mejor manera de lograr esto es definir la codificación interna o predeterminada para
   que coincida con la página de códigos ANSI. Otro método es definir la directiva INI
   output_encoding e input_encoding a la página de códigos requerida, sin embargo, en este caso la
   diferencia entre las páginas de códigos internas y de I/O puede causar mojibake.
   En raros casos, si PHP falla graciosamente, la página de códigos original de la
   consola puede no ser restaurada. En este caso, el comando chcp puede ser utilizado
   para restaurarla manualmente.
  </p>
  <p class="para">
   Atención particular para los sistemas DBCS - el cambio de página de códigos durante
   la ejecución utilizando <span class="function"><a href="function.ini-set.php" class="function">ini_set()</a></span> puede causar problemas de visualización.
   A diferencia de los sistemas no DBCS, los caracteres extendidos requieren dos consolas
   para ser mostrados. En algunos casos, solo la coincidencia de caracteres en el conjunto de glifos de la fuente puede ocurrir, sin cambio de fuente.
   Esta es la naturaleza de los sistemas DBCS, la manera más simple de prevenir problemas
   de visualización es evitar el uso de <span class="function"><a href="function.ini-set.php" class="function">ini_set()</a></span> para el cambio de página de códigos.
  </p>
  <p class="para">
   Como consecuencia del soporte de UTF-8 en los flujos, los scripts PHP ya no están
   limitados a nombres de ficheros ASCII o ANSI. Esto está listo para su uso en CLI.
   Para otros SAPI, la documentación para el servidor correspondiente es útil.
  </p>
  <p class="para">
   El soporte para rutas largas es transparente. Las rutas más largas que 260 bytes son
   automáticamente prefijadas por <code class="literal">\\?\</code>. La longitud máxima de la ruta es
   limitada a 2018 bytes. Tenga en cuenta que el límite de los segmentos de ruta (longitud del
   basename) persiste.
  </p>
  <p class="para">
   Para una mejor portabilidad, se recomienda encarecidamente gestionar los nombres de ficheros,
   I/O y otros temas relacionados en UTF-8. Además, para las aplicaciones de consola, el uso
   de una fuente TrueType es preferible y el uso de ini_set() para el
   cambio de página de códigos es desaconsejado.
  </p>
  <p class="para">
  </p>
  <p class="para">
  </p>
 </div>

 <div class="sect2" id="migration71.windows-support.readline">
  <h3 class="title">readline</h3>

  <p class="para">
   La <a href="book.readline.php" class="link">extensión readline</a> es soportada
   a través de la <a href="http://mingweditline.sourceforge.net/" class="link external">&raquo;&nbsp;biblioteca
   WinEditLine</a>. Así, la interfaz de sistema interactiva <abbr title="Command Line Interpreter/Interface">CLI</abbr> también es
   soportada (<code class="literal">php.exe -a</code>).
  </p>
 </div>

 <div class="sect2" id="migration71.windows-support.php-fcgi-children">
  <h3 class="title">PHP_FCGI_CHILDREN</h3>
  <p class="para">
  <var class="varname">PHP_FCGI_CHILDREN</var> es ahora respetado. Si esta variable de entorno
   está definida, el primer proceso <var class="filename">php-cgi.exe</var> ejecutará el número
   especificado de hijos. Estos compartirán el mismo socket TCP.
  </p>
 </div>

 <div class="sect2" id="migration71.windows-support.ftok">
  <h3 class="title">ftok()</h3>
  <p class="para">
   Se ha añadido soporte para <span class="function"><a href="function.ftok.php" class="function">ftok()</a></span>
  </p>
 </div>

</div><?php manual_footer($setup); ?>