Problema di codifica dei caratteri dopo il cambio dei server

5 mar 2011, 18:38:06
Visualizzazioni: 29.1K
Voti: 5

Ho recentemente spostato il mio sito basato su WordPress da DreamHost VPS a un VPS Linode con Debian + LEMP. Dopo aver rimesso online il sito, ho notato molti caratteri errati nei post; caratteri come " e - venivano sostituiti con simboli incomprensibili.

Dopo alcune ricerche, sembrava chiaro che il problema fosse legato alla codifica dei caratteri.

Ho trovato una guida che suggeriva di modificare wp-config.php e commentare le righe:

define('DB_CHARSET', 'utf8'); e define('DB_COLLATE', '');

Ho fatto questa modifica e ha risolto il problema, ma mi chiedo se questo fosse il modo migliore per affrontarlo. Grazie per qualsiasi consiglio.

1
Commenti

Potrei sbagliarmi, ma quando ho avuto lo stesso problema durante il trasferimento su un nuovo server, era dovuto al salvataggio del file in formato ASCII invece che UTF

Bainternet Bainternet
5 mar 2011 18:41:06
Tutte le risposte alla domanda 4
2

Dopo aver trascorso l'intera giornata lavorando su questo problema, ho finalmente trovato una guida che ha funzionato perfettamente:

Prima di ciò, ho provato a seguire le informazioni di @Rarst, ho tentato di esportare il database e ripulirlo manualmente, ho provato il plugin UTF-8 Sanitize con una versione modificata da qui http://www.prelovac.com/vladimir/ultimate-solution-to-weird-utf-character-encoding-problem (che in realtà ha funzionato abbastanza bene, ma non ha risolto tutti i caratteri strani. E probabilmente era una pessima idea).

In ogni caso, se qualcuno di voi dovesse incontrare questo problema, date un'occhiata al primo link che ho postato. La procedura era piuttosto semplice e si riduceva sostanzialmente a sostituire SET NAMES latin1 con SET NAMES utf8 dopo aver esportato il database, assicurandosi poi di importare il nuovo database ripulito esplicitamente come UTF8.

6 mar 2011 01:17:48
Commenti

Il plugin UTF8 Sanitize funziona per me (anche se il plugin è abbastanza vecchio - dice non aggiornato da 2 anni al momento di questo commento https://wordpress.org/plugins/wp-utf8-sanitize/ ) risolvendo un dump del database che era sporco.

artlung artlung
4 set 2014 00:05:17

il primo link è rotto

Duck Duck
1 apr 2017 20:58:34
4

Ecco un'altra soluzione che ha funzionato per me...

Basta commentare DB_CHARSET e DB_COLLATE nel file wp-config.php

//define('DB_CHARSET', 'utf8');

//define('DB_COLLATE', '');
9 nov 2014 14:41:02
Commenti

Per favore spiega perché questo sarebbe d'aiuto.

kaiser kaiser
9 nov 2014 15:08:23

In che modo questa è "un'altra soluzione"? La stessa identica cosa era già stata notata nella domanda; ha provato a commentare quelle due righe in wp-config.php e ha funzionato, ma si chiedeva se ci fosse una soluzione migliore. La tua risposta non aggiunge nulla.

Gabriel Gabriel
9 nov 2014 15:28:37

Scusa non ho letto completamente la domanda... errore mio

Sabeer Sabeer
10 nov 2014 06:42:12

Funziona perfettamente !!!

Mike Nguyen Mike Nguyen
4 gen 2017 14:21:49
1

Vedi Conversione dei Set di Caratteri del Database nel Codex. L'articolo contiene una nota riguardante una completa riscrittura alla versione 3.0.1, quindi le informazioni dovrebbero essere aggiornate.

5 mar 2011 19:34:19
Commenti

Grazie per la risposta Rarst. Era un po' più estremo di ciò di cui avevo bisogno, alla fine mi è bastato sostituire un'istanza di SET NAMES latin1 con SET NAMES utf8 e reimportare esplicitamente il database come UTF8.

Evan Wondrasek Evan Wondrasek
6 mar 2011 01:18:39
0

Ho trasferito i file del mio sito web da una vecchia a una nuova directory e sono riuscito a modificare:

define('DB_CHARSET', 'utf8mb4');

in

define('DB_CHARSET', 'utf8');

E questo ha risolto il problema degli spazi bianchi con i diamanti neri.

3 gen 2016 22:15:21