Pergunta

Eu tenho um servidor de backup que backup automaticamente do meu site ao vivo, ambos os arquivos e banco de dados.

No site ao vivo, o texto parece bem, mas quando você vê a versão espelhada, exibe '?' dentro de alguns dos texto. Este texto é armazenado na tabela de banco de dados de notícias.

Aqui está uma captura de tela está no servidor ao vivo e no servidor espelhado.

O que poderia acontecer dentro do processo de apoio ao servidor espelhado?alt text

Foi útil?

Solução

Os seguintes artigos serão úteis

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

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

Depois de se conectar ao banco de dados, o seguinte comando:

Definir nomes 'utf8';

Certifique-se de que sua página da web também use a codificação UTF-8:

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

O PHP também oferece várias funções que serão úteis para conversões:

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

http://us.php.net/mb_convert_encoding

Outras dicas

Edite seu arquivo de configuração do Apache no servidor "Mirror" (o servidor com o problema) e comente a seguinte linha:

AddDefaultCharset UTF-8

Em seguida, reinicie o Apache:

service httpd restart

O problema é que a linha "AddDefaultCharset UTF-8" substitui o tipo de conteúdo especificado nos arquivos .html; por exemplo:

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

O sintoma mais comum é que os códigos de caracteres acima de 127 são exibidos como diamantes pretos com pontos de interrogação (em Chrome, Safari ou Firefox) ou como pequenas caixas (no IE e na Opera). Os arquivos HTML gerados pelo Microsoft Word geralmente têm muitos desses personagens, o mais comum sendo o código de caracteres 160 = 0XA0, o que é equivalente a "" na codificação do Windows-1252, e é frequentemente encontrado entre as tags de span, assim:

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

Cheguei aqui procurando uma solução para JavaScript exibida no navegador e, embora não esteja diretamente relacionado a um banco de dados ...

No meu caso, copiei e colei algum texto que encontrei na Internet em um arquivo JavaScript e o salvei com o Windows Bloco.

Quando a página que usa o arquivo JavaScript produz as cordas, havia pontos de interrogação (como os mostrados na pergunta) em vez de caracteres especiais como letras acentuadas, etc.

Eu abri o arquivo usando Notepad++. Logo após abrir o arquivo, vi que a codificação do personagem foi definida como ANSI Como você pode ver (cursor do mouse no rodapé) na captura de tela a seguir:

enter image description here

Para resolver o problema, clique no Encoding menu em Notepad++ e selecione Encode in UTF-8. Você deve estar pronto para ir. :)

Seu navegador não interpretou corretamente a codificação da página (porque você a forçou a uma configuração específica ou a página é definida incorretamente) e, portanto, não pode exibir alguns dos caracteres.

Isso terá algo a ver com codificações de personagens.

Tem certeza de que o site espelhado tem as mesmas propriedades em relação às codificações de caracteres que seu servidor principal?

Dependendo do tipo de servidor que você possui, isso pode ser uma propriedade do próprio processo do servidor, ou pode ser uma variável de ambiente.

Por exemplo, se este é um ambiente Unix, talvez tente comparar Lang ou LC_All?

Veja também aqui

Verifique o conjunto de caracteres emitido pelo seu servidor espelhado. Parece haver uma diferença do servidor principal - o site ao vivo parece estar emitindo Unicode, onde o espelho não está. Além disso, geralmente é uma boa idéia limpar os caracteres Unicode em seu conteúdo recebido e substituí -los por suas entidades HTML apropriadas.

Sua questão específica em relação aos "Quotes Smart", "Emra Dashes" e "EN traços". Eu sei que você pode substituir os traços por &mdash; e n-dashes com &ndash; (que deve ser feito no lado de entrada do seu banco de dados); Não sei qual seria o substituto correto para as citações inteligentes. (Normalmente, apenas substituo todas as citações curtas por 'e todas as citações duplas encaracoladas com "... os geeks da tipografia podem se sentir à vontade para me atirar à vista.)

Devo observar que alguns navegadores são mais perdoadores do que outros com esse problema-o Internet Explorer no Windows tende a detectar e "consertar" automaticamente isso; Firefox e a maioria dos outros navegadores exibem os pontos de interrogação.

Normalmente, amaldiçoo o ms word e depois execute o seguinte WScript.

// Substitua pelo caminho para um arquivo que precisa de limpeza
Path = "test.html"

var go = wscript.createObject ("scripting.filesystemoBject");
var content = go.getfile (caminho) .openastextStream (). readall ();
var out = go.createTextFile ("limpo-"+path, true);

// símbolos
content = content.replace (/“/g, '"');
content = content.replace (/”/g, '"');
content = content.replace (/'/g, "'");
content = content.Replace (/-/g, "-");
content = content.Replace (/©/g, "©");
content = content.Replace (/®/g, "®");
content = content.Replace (/°/g, "°");
content = content.replace (/¶/g, "u003Cp> ");
content = content.Replace (/¿/g, "¿");
content = content.replace (/¡/g, '¡');
content = content.Replace (/¢/g, '¢');
content = content.Replace (/£/g, '£');
content = content.Replace (/¥/g, '¥');

out.write (content);

Unicode ou outros personagens de conjunto de personagens caindo?

Vi personagens "estranhos" semelhantes aparecendo em sites em que trabalhei com frequência quando o texto é copiado de um email ou algum outro formato de documento (por exemplo, palavra) em um editor de texto. O editor pode exibir os caracteres não ASCII, mas o navegador não pode. Para o site, sugiro procurar o código da entidade HTML para o personagem e inserir isso ... ou mudar para mais padrão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top