Pregunta

Tengo un servidor de respaldo que realiza automáticamente una copia de seguridad de mi sitio en vivo, tanto de archivos como de base de datos.

En el sitio en vivo, el texto se ve bien, pero cuando ve la versión reflejada, se muestra '? dentro de algunos de los textos.Este texto se almacena dentro de la tabla de la base de datos de noticias.

Aquí hay una captura de pantalla del servidor en vivo y del servidor reflejado.

¿Qué podría pasar en el proceso de realizar una copia de seguridad en el servidor reflejado?alt text

¿Fue útil?

Solución

Los siguientes artículos serán útiles

http://dev.mysql.com/doc/ refman / 5.0 / es / charset-syntax.html

http://dev.mysql.com/doc/ refman / 5.0 / es / charset-connection.html

Después de conectarse a la base de datos, emita el siguiente comando:

SET NAMES 'utf8';

Asegúrese de que su página web también use la codificación UTF-8:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

PHP también ofrece varias funciones que serán útiles para las conversiones:

http://us3.php.net/manual/en/function. iconv.php

http://us.php.net/mb_convert_encoding

Otros consejos

Edite su archivo de configuración de Apache en " mirror " servidor (el servidor con el problema) y comente la siguiente línea:

AddDefaultCharset UTF-8

Luego reinicie Apache:

service httpd restart

El problema es que " AddDefaultCharset UTF-8 " la línea anula el tipo de contenido especificado en los archivos .html; por ejemplo:

<meta http-equiv=Content-Type content="text/html; charset=windows-1252">

El síntoma más común es que los códigos de caracteres superiores a 127 se muestran como diamantes negros con signos de interrogación (en Chrome, Safari o Firefox), o como pequeños cuadros (en IE y Opera). Los archivos HTML generados por Microsoft Word generalmente tienen muchos de estos caracteres, el más común es el código de caracteres 160 = 0xA0, que es equivalente a & Quot; & Amp; nbsp; & Quot; en la codificación de Windows-1252, y a menudo se encuentra entre las etiquetas span, como esta:

<span style="mso-spacerun: yes">ááá </span>

Llegué aquí buscando una solución para JavaScript que se muestra en el navegador y aunque no está directamente relacionado con una base de datos...

En mi caso, copié y pegué un texto que encontré en Internet en un archivo JavaScript y lo guardé con el Bloc de notas de Windows.

Cuando la página que usa ese archivo JavaScript genera las cadenas, había signos de interrogación (como los que se muestran en la pregunta) en lugar de caracteres especiales como letras acentuadas, etc.

Abrí el archivo usando Notepad++.Inmediatamente después de abrir el archivo vi que la codificación de caracteres estaba configurada como ANSI como puede ver (cursor del mouse en el pie de página) en la siguiente captura de pantalla:

enter image description here

Para resolver el problema, haga clic en el Encoding menú en Notepad++ y seleccione Encode in UTF-8.Usted debe ser bueno para ir.:)

Su navegador no ha interpretado correctamente la codificación de la página (ya sea porque la ha forzado a una configuración particular o porque la página está configurada incorrectamente) y, por lo tanto, no puede mostrar algunos de los caracteres.

Esto va a tener que ver con las codificaciones de caracteres.

¿Está seguro de que el sitio duplicado tiene las mismas propiedades con respecto a las codificaciones de caracteres que su servidor principal?

Dependiendo del tipo de servidor que tenga, esto puede ser una propiedad del proceso del servidor en sí, o podría ser una variable de entorno.

Por ejemplo, si este es un entorno UNIX, ¿tal vez intente comparar LANG o LC_ALL?

Consulte también aquí

Verifique el conjunto de caracteres que emite su servidor reflejado.Parece haber una diferencia con respecto al servidor principal: el sitio en vivo parece estar generando Unicode, mientras que el espejo no.Además, suele ser una buena idea eliminar los caracteres Unicode del contenido entrante y reemplazarlos con sus entidades HTML apropiadas.

Su problema específico se refiere a "citas inteligentes", "EM Dashes" y "en Dashes". Sé que puedes reemplazar los guiones de Em con &mdash; y n-guiones con &ndash; (que debe hacerse en el lado de entrada de su base de datos);No sé cuál sería el reemplazo correcto para las comillas tipográficas.(Por lo general, simplemente reemplazo todas las comillas simples con ' y todas las comillas dobles con "...Los fanáticos de la tipografía pueden sentirse libres de dispararme en cuanto me vean).

Debo señalar que algunos navegadores son más indulgentes que otros con este problema: Internet Explorer en Windows tiende a detectarlo y "solucionarlo" automáticamente;Firefox y la mayoría de los demás navegadores muestran signos de interrogación.

Usualmente maldigo la palabra MS y luego ejecuto el siguiente Wscript.

// reemplazar con ruta a un archivo que necesita limpieza
PATH = & Quot; test.html & Quot;

var go = WScript.CreateObject (" Scripting.FileSystemObject ");
var content = go.GetFile (PATH) .OpenAsTextStream (). ReadAll ();
var out = go.CreateTextFile (" clean - " + PATH, true);

// símbolos
content = content.replace (/ & # 8220; / g, '"');
content = content.replace (/ & # 8221; / g, '"');
content = content.replace (/ & # 8217; / g, " '");
content = content.replace (/ & # 8211; / g, " - ");
content = content.replace (/ & # 169; / g, " & amp; copy; ");
content = content.replace (/ & # 174; / g, " & amp; reg; ");
content = content.replace (/ & # 176; / g, " & amp; deg; ");
content = content.replace (/ & # 182; / g, " < p > ");
content = content.replace (/ & # 191; / g, " & amp; iquest; ");
content = content.replace (/ & # 161; / g, '& amp; iexcl;');
content = content.replace (/ & # 162; / g, '& amp; cent;');
content = content.replace (/ & # 163; / g, '& amp; pound;');
content = content.replace (/ & # 165; / g, '& amp; yen;');

out.Write (contenido);

¿Unicode u otros caracteres del juego de caracteres que caen?

He visto " extraño " los caracteres aparecen en sitios en los que he trabajado a menudo cuando el texto se copia de un correo electrónico o algún otro formato de documento (por ejemplo, Word) en un editor de texto. El editor puede mostrar los caracteres no ASCII pero el navegador no. Para el sitio web, sugeriría buscar el código de entidad HTML para el carácter e insertarlo en su lugar ... o cambiar a otros más estándar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top