PHP 5.6 conjunto de Caracteres del Encabezado de Regreso A ISO-8859-1?

Mi servicio de hosting recientemente actualizado mi sitio web server desde PHP 5.3 a 5.6 y se rompió mi sitio en que todos mis html/php archivos ISO-8859-1, pero el sitio está siendo servido con encabezados de respuesta indicando

charset=UTF-8

Entiendo que debe mover a los archivos UTF-8 finalmente, pero mientras tanto quiero una solución rápida. He probado las siguientes correcciones:

<meta charset="ISO-8859-1"> (in the <head> tag of html files)

AddDefaultCharset ISO-8859-1 (in .htaccess)

default_charset= "ISO-8859-1" (in php.ini)

…pero ninguno de estos se ve afectado el encabezado de respuesta del conjunto de caracteres.

Lo único que trabajó en la prueba fue de añadir esta línea a mi header.php archivo utilizado por la mayoría (no todos) de mis páginas:

header('Content-Type: charset=ISO-8859-1');

Pero no quiero buscar a través de todas las rezagadas archivos y añadir que a cada uno. Que bien podría convertir todos los archivos a UTF-8, si me voy a la caza de ellos y tocarlos de esa manera.

Así que…me preguntaba si alguien sabría por qué mi PHP.ini o htaccess correcciones de no hacer el trabajo universalmente? ¿El hecho de que estos no son de trabajo indican que algunos de los otros Apache configuración está en el control de la cabecera de respuesta de caracteres?

Gracias de antemano.

Actualización: incluso he intentado añadir

addCharset ISO-8859-1 .html .htm .php 

a .htaccess pero no la alegría.

InformationsquelleAutor Avimelech | 2015-05-17

5 Kommentare

  1. 6

    Spiele-Umsonst la respuesta no trabajo para mí (en Apache), pero esto hizo que el truco:

    php_value default_charset Off
    AddDefaultCharset ISO-8859-1

    «Off» es un valor válido para «AddDefaultCharset», así que supongo que por default_charset así. «Ninguno» no es válido, por lo que supongo que por eso no funcionó. Creo que esto podría depender de algunas configuraciones de servidor o el http demonio utilizado.

    Lectura adicional para el servidor web Apache: http://httpd.apache.org/docs/current/mod/core.html#adddefaultcharset

  2. 3

    Esta en .htaccess le ayudará a mi amigo:

    php_value default_charset None
    AddDefaultCharset ISO-8859-1

    Y no te olvides de los archivos html 😛 limpiarlos de la etiqueta meta o asegurarse de que están alos ISO

  3. 0
    • php_value cambios en la configuración de php
    • AddDefaultCharset cambios de configuración de apache

    Para hacer modificaciones .htaccess o /etc/apache2/sites-available/? Eso depende del alcance necesarios.

    Escribí en .htaccess php_value default_charset ISO-8859-1 para reemplazar el valor de php.ini default_charset UTF-8.

    Se está ejecutando porque yo no AddDefaultCharset en mi archivo de configuración de apache.
    Puedo agregar en .htaccess AddDefaultCharset ISO-8859-1 para prevenir.

  4. 0

    Si lo anterior no funciona, puede que desee probar algo como esto en la parte superior de su archivo PHP:

    mb_internal_encoding("iso-8859-1");
    mb_http_output( "iso-8859-1" );
    ob_start("mb_output_handler");

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea