Sì, è la mia ipotesi. Sto lavorando su un’importazione con problemi simili. La maggior parte riguarda cose come le virgolette tipografiche e i trattini lunghi.
È tutt’altro che semplice, ma puoi eseguire una post-elaborazione che applica un force_encoding o tenta di sostituire i caratteri uno per uno.
Qualcosa del genere:
Post.all.each do |post|
post.raw = post.raw.force_encoding('utf-8').encode("Windows-1252").force_encoding('utf-8')
post.save!
post.rebake!
end
Tuttavia, ti consiglio di testarlo estensivamente su un sito di staging prima di eseguirlo sui dati in produzione.
Grazie, Jay.
Esiste un modo intelligente per risolvere il problema alla radice, ovvero esportare nuovamente il database dal vecchio forum e poi reimportarlo senza problemi di caratteri e mycode?
Il sito non è ancora ufficialmente online: qual è il modo migliore per gestire i problemi di caratteri e il parsing del mycode durante l’esportazione da MyBB?
Sono tornato all’installazione originale di MyBB e ho trovato nel pannello di amministrazione/Strumenti e manutenzione/Stato del sistema un avviso
Si consiglia di non utilizzare codifiche diverse nel database. Ciò potrebbe causare comportamenti imprevisti o errori MySQL.
Le tabelle sono elencate e ho notato che la maggior parte, ma non tutte, erano in formato UTF-8. Sembrava che alcune, in particolare quelle associate ai plugin, fossero in un formato più vecchio.
Cliccando sul link ‘Converti tutto’ è apparso un messaggio che indicava la necessità di modificare /inc/config.php per supportare il completo UTF-8 a 4 byte
$config[‘database’][‘encoding’] = ‘utf8mb4’;
Dopo aver modificato config.php e riprovato la conversione, ora tutte risultano coerenti. Proverò a reimportare in Discourse e farò sapere se questo risolve i problemi con i caratteri.
Non sono ancora sicuro di come gestire l’analisi MyCode.
Non hai incluso esempi o dettagli al riguardo: a questo punto, potrebbe essere meglio aprire una nuova discussione e mantenere questa focalizzata sul seguito relativo alla codifica dei caratteri.