<?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 E/S,
    se debe definir explícitamente una directiva INI. El orden de alternativa para la comprobación de los
    ajustes de codificación INI es:
  </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 admita Unicode, podría ser 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 establecer las
    directivas INI output_encoding e input_encoding en la página de códigos requerida; sin
    embargo, en este caso la diferencia entre las páginas de códigos internas y de
    E/S puede causar mojibake. En raros casos, si PHP falla de forma limpia, la página
    de códigos original de la consola puede no ser restaurada. En este caso, se
    puede utilizar el comando chcp para restaurarla manualmente.
  </p>
  <p class="para">
    Especial atención a 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 de ancho doble requieren dos celdas de la
    consola para mostrarse. En algunos casos, solo puede ocurrir la coincidencia de caracteres en
    el conjunto de glifos de la fuente, 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 de más de 260 caracteres
    se prefijan automáticamente con <code class="literal">\\?\</code>. La longitud máxima de la ruta se limita a
    2048 caracteres. 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, E/S
    y otros temas relacionados en UTF-8. Además, para las aplicaciones de consola,
    el uso de una fuente TrueType es preferible y se desaconseja el uso de ini_set() para
    el cambio de página de códigos.
  </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> se admite 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 se admite (<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); ?>