2011-09-27 19 views
6
C:\Users\Kolink>php -r "echo 'é';" 
Ú 

C:\Users\Kolink>echo é 
é 

Como se puede ver, un programa de emisión de una é resultados en una Ú, pero utilizando el comando echo da el carácter deseado.carácter de cmd establece

Y, ¿puedo configurar PHP (quizás algún comando al inicio del script) para generar el carácter correcto?

+0

Bueno, el eco parece ser más una función de copiar/pegar. No estoy seguro acerca de PHP ... – Coffee

Respuesta

3

CMD.exe funciona en diferentes páginas de códigos que PHP. Por cierto, también es una página de códigos diferente a la página de códigos predeterminada de Windows. Esto es por compatibilidad con programas anteriores de MS-DOS. En mi país, Windows usa Windows-1250 y cmd.exe usa DOS Latin2. Supongo que en el Reino Unido esto sería Windows-1252 y DOS Latin1 respectivamente.

Para obtener los mismos resultados, debe usar la misma página de códigos en PHP y en cmd.exe. Compruebe qué página de códigos utiliza PHP y establezca cmd.exe en la misma página de códigos. Para hacer esto, use el siguiente comando: mode con sp select=<codepagenumber> o chcp <codepagenumber>. Esto cambiará la página de códigos solo para la instancia actual de cmd.exe.

Aquí es una breve lista de algunas páginas de códigos típicos y sus números:

DOS Latin1 850 
DOS Latin2 852 
Windows-1250 1250 
Windows-1252 1252 
UTF-8   65001 
ISO-8859-1 28591 
ISO-8859-2 28592 

Como @Christophe Weis señaló en los comentarios, puede buscar los identificadores de otras páginas de códigos en Code page identifiers página.

+1

¡Gracias, eso fue muy útil! Pero los números de página de códigos ISO- * no funcionaron para mí. En [Identificadores de página de códigos] (https://msdn.microsoft.com/en-us/library/windows/desktop/dd317756%28v=vs.85%29.aspx) se afirma que 'iso-8859-1' tiene '28591' y' ISO-8859-2' tiene '28592'. –

+0

¡Muchas gracias! He corregido mi respuesta y agregué un hipervínculo a la página que encontraste. – MBu