Autore Topic: UTF-8 e problemi importazione database  (Letto 7876 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Sebbene

  • Utente IS Lv.2
  • **
  • Post: 165
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
UTF-8 e problemi importazione database
« il: Venerdì, 13 Dicembre 2013 02:10 »
Ciao ragazzi,mi è capitato di dover importare un database e ho scoperto che se su Mysql si seleziona uft-8 poi le lettere accentate non funzionano, viceversa se si seleziona Latin1 le accentate si leggono in modo corretto.
Inoltre ho notato che in fase di installazione di SMF se seleziono UTF-8 viene fuori un macello con le lettere accentate.
Ma utf-8 non dovrebbe essere la codifica migliore, futuribile e futuristica? Perchè ho l'impressione che smf non la digerisca bene? Spiegatemi voi perchè ci sto capendo ben poco.


Offline Darknico

  • Amministratore IS
  • *******
  • Post: 2287
  • Sesso: Maschio
  • Server Admin
    • Mostra profilo
    • Darknico.com
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:UTF-8 e problemi importazione database
« Risposta #1 il: Venerdì, 13 Dicembre 2013 09:00 »
Se decidi di usare UTF-8, devi di conseguenza utilizzare un traduzione UTF-8.
SMF lo digerisce senza problemi e sono in molti ad utilizzare questo charset
Non supporto privatamente, non risponderei e ci rimarreste male....





Offline gnamignami

  • Utente IS
  • *
  • Post: 14
    • Mostra profilo
  • Versione SMF: 2.0.x
Re:UTF-8 e problemi importazione database
« Risposta #2 il: Venerdì, 13 Dicembre 2013 09:07 »
Non ascriverei a SMF un problema con UTF-8.
È mysql che è molto 'sensibile' e va impostato bene quando si crea il db.
Hello world!

Offline Darknico

  • Amministratore IS
  • *******
  • Post: 2287
  • Sesso: Maschio
  • Server Admin
    • Mostra profilo
    • Darknico.com
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:UTF-8 e problemi importazione database
« Risposta #3 il: Venerdì, 13 Dicembre 2013 09:53 »
Non ascriverei a SMF un problema con UTF-8.
È mysql che è molto 'sensibile' e va impostato bene quando si crea il db.

Il DB viene creato da SMF in fase di installazione, e lo crea correttamente.
Direi che il problema è la traduzione, che viene utilizzata quella errata
Non supporto privatamente, non risponderei e ci rimarreste male....





Offline gnamignami

  • Utente IS
  • *
  • Post: 14
    • Mostra profilo
  • Versione SMF: 2.0.x
Re:UTF-8 e problemi importazione database
« Risposta #4 il: Venerdì, 13 Dicembre 2013 10:08 »
Credevo di aver capito che Sebbene lavorasse su una importazione di un precedente db e non su una installazione scratch.

Dovendo importare dati da un dump, credo sia bene  assicurarsi che la collation della connessione di MySQL del db originario sia anch'essa utf-8 e probabilmente il db di Sebbene era in Latin1.

In tal caso credo si debba fare prima un dump del db originale in utf-8_general_ci, correggere eventualmente anche la collation per tabelle e colonne (DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci) e dopo importare, altrimenti compariranno comunque caratteri 'strani'.
Hello world!

Offline emanuele

  • Amministratore IS
  • *******
  • Post: 4968
    • Mostra profilo
    • ElkArte
  • Versione SMF: Altro
  • Versione ElkArte: 1.0.x
Re:UTF-8 e problemi importazione database
« Risposta #5 il: Venerdì, 13 Dicembre 2013 12:08 »
Anch'io sentendo parlare di "importare" mi viene da pensare ad un trasferimento e di solito in simili casi i problemi di codifica sorgono "nel mentre" (o durante l'export o durante l'import).

Un'altra cosa: "recentemente" MySQL (o forse parecchie distro, non sono esperto, vedo solo le conseguenze) ha cambiato il charset di default da latin_swedish a utf8_general. Questo sì è fonte di problemi in caso di installazione di SMF non in utf8, perché SMF suppone che il default sia latin_swedish, quindi non si preoccupa di "forzare" il charset corretto e quando si fa a postare qualcosa che contiene caratteri fuori dall'ascii il testo viene troncato.

Offline Sebbene

  • Utente IS Lv.2
  • **
  • Post: 165
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:UTF-8 e problemi importazione database
« Risposta #6 il: Venerdì, 13 Dicembre 2013 13:26 »
Se decidi di usare UTF-8, devi di conseguenza utilizzare un traduzione UTF-8.
SMF lo digerisce senza problemi e sono in molti ad utilizzare questo charset

Io non sono per nuiente esperto, in pratica se SMF è basato su Latin1, come mai in molti dicono che è meglio usare il charset UTF-8? Che vantaggi si traggono?
E scusa la domanda, come si fa ad usare una una traduzione UTF-8? Cioé, c'è una traduzione in italiano basata su UTF-8? Booo ...

Offline Sebbene

  • Utente IS Lv.2
  • **
  • Post: 165
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:UTF-8 e problemi importazione database
« Risposta #7 il: Venerdì, 13 Dicembre 2013 13:29 »
Non ascriverei a SMF un problema con UTF-8.
È mysql che è molto 'sensibile' e va impostato bene quando si crea il db.

Il DB viene creato da SMF in fase di installazione, e lo crea correttamente.
Direi che il problema è la traduzione, che viene utilizzata quella errata

E crea il database con charset Latin1 ... non potrebbe crearlo direttamente in UTF-8?  ;D

Offline Sebbene

  • Utente IS Lv.2
  • **
  • Post: 165
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:UTF-8 e problemi importazione database
« Risposta #8 il: Venerdì, 13 Dicembre 2013 13:34 »
Credevo di aver capito che Sebbene lavorasse su una importazione di un precedente db e non su una installazione scratch.

Dovendo importare dati da un dump, credo sia bene  assicurarsi che la collation della connessione di MySQL del db originario sia anch'essa utf-8 e probabilmente il db di Sebbene era in Latin1.

In tal caso credo si debba fare prima un dump del db originale in utf-8_general_ci, correggere eventualmente anche la collation per tabelle e colonne (DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci) e dopo importare, altrimenti compariranno comunque caratteri 'strani'.

Trattasi effettivamente di un precedente database, comunque creato da SMF su base Latin1. Quindi diciamo che esportare in Latin11 e importanre in Latin1 risolve il problema, però mi domando perchè in fase di installazione di SMF se provo a selezionare UTF-8 esplode una bomba di geroglifici illegibili?
Il dump del database credo che non saprei farlo. Non l'ho mai fatto e sono inesperto. Necessiterei di delucidazioni in merito.

Offline Sebbene

  • Utente IS Lv.2
  • **
  • Post: 165
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:UTF-8 e problemi importazione database
« Risposta #9 il: Venerdì, 13 Dicembre 2013 13:36 »
Anch'io sentendo parlare di "importare" mi viene da pensare ad un trasferimento e di solito in simili casi i problemi di codifica sorgono "nel mentre" (o durante l'export o durante l'import).

Un'altra cosa: "recentemente" MySQL (o forse parecchie distro, non sono esperto, vedo solo le conseguenze) ha cambiato il charset di default da latin_swedish a utf8_general. Questo sì è fonte di problemi in caso di installazione di SMF non in utf8, perché SMF suppone che il default sia latin_swedish, quindi non si preoccupa di "forzare" il charset corretto e quando si fa a postare qualcosa che contiene caratteri fuori dall'ascii il testo viene troncato.

Bene, questo si che complica ulteriormente la questione?!  :-\ ??? ;D
Quindi comincia a rendersi necessaria l'installazione in UTF-8 ...

Offline gnamignami

  • Utente IS
  • *
  • Post: 14
    • Mostra profilo
  • Versione SMF: 2.0.x
Re:UTF-8 e problemi importazione database
« Risposta #10 il: Venerdì, 13 Dicembre 2013 13:46 »
E scusa la domanda, come si fa ad usare una una traduzione UTF-8? Cioé, c'è una traduzione in italiano basata su UTF-8?

Quando si scaricano per installarli i files di traduzione, solitamente (vale per molti CMS) sono disponibili in due o più versioni, una di solito è con charset UTF-8.

Se le carichi e vai in /yourhomedir/Themes/default/languages troverai i files di traduzione, se hai messo gli UTF-8, vedrai ad esempio invece di  xxxx.english_british.php che ci sarà il file xxxx.english_british-utf8.php

Ma tali files servono per tradurre il template e gli add-on, non i per contenuti del db, per quelli consiglierei di lavorare alle conversioni direttamente con mysql (e già farlo su un linux o su windows con uno xampp o easyphp cambia e non poco).

EDIT
Trattasi effettivamente di un precedente database, comunque creato da SMF su base Latin1. Quindi diciamo che esportare in Latin11 e importanre in Latin1 risolve il problema, però mi domando perchè in fase di installazione di SMF se provo a selezionare UTF-8 esplode una bomba di geroglifici illegibili?
Il dump del database credo che non saprei farlo. Non l'ho mai fatto e sono inesperto. Necessiterei di delucidazioni in merito.

Il dump se hai esportato il Db (phpmyadmin?) lo hai già fatto, se hai un'esportazione in un charset non UTF-8 penso che potrasti farti facilmente uno script (sorry ma - per default - mi riferisco sempre a sistemi UNIX LIKE; con windows penso basti un editor che faccia un find & replace accurato) che converta i classici caratteri che danno problemi in html entities (vedi: http://www.ascii.cl/htmlcodes.htm). Occhio agli apicini che danno problemi spesso e volentieri e di solito meglio renderli come 
Citazione
´

Dopo importi il dump in un db 'pulito' in UTF-8, non dovresti avere problemi di sorta...
« Ultima modifica: Venerdì, 13 Dicembre 2013 14:18 da gnamignami »
Hello world!

Offline Sebbene

  • Utente IS Lv.2
  • **
  • Post: 165
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:UTF-8 e problemi importazione database
« Risposta #11 il: Sabato, 14 Dicembre 2013 00:12 »
E scusa la domanda, come si fa ad usare una una traduzione UTF-8? Cioé, c'è una traduzione in italiano basata su UTF-8?

Quando si scaricano per installarli i files di traduzione, solitamente (vale per molti CMS) sono disponibili in due o più versioni, una di solito è con charset UTF-8.

Se le carichi e vai in /yourhomedir/Themes/default/languages troverai i files di traduzione, se hai messo gli UTF-8, vedrai ad esempio invece di  xxxx.english_british.php che ci sarà il file xxxx.english_british-utf8.php

Ma tali files servono per tradurre il template e gli add-on, non i per contenuti del db, per quelli consiglierei di lavorare alle conversioni direttamente con mysql (e già farlo su un linux o su windows con uno xampp o easyphp cambia e non poco).

EDIT
Trattasi effettivamente di un precedente database, comunque creato da SMF su base Latin1. Quindi diciamo che esportare in Latin11 e importanre in Latin1 risolve il problema, però mi domando perchè in fase di installazione di SMF se provo a selezionare UTF-8 esplode una bomba di geroglifici illegibili?
Il dump del database credo che non saprei farlo. Non l'ho mai fatto e sono inesperto. Necessiterei di delucidazioni in merito.

Il dump se hai esportato il Db (phpmyadmin?) lo hai già fatto, se hai un'esportazione in un charset non UTF-8 penso che potrasti farti facilmente uno script (sorry ma - per default - mi riferisco sempre a sistemi UNIX LIKE; con windows penso basti un editor che faccia un find & replace accurato) che converta i classici caratteri che danno problemi in html entities (vedi: http://www.ascii.cl/htmlcodes.htm). Occhio agli apicini che danno problemi spesso e volentieri e di solito meglio renderli come 
Citazione
´

Dopo importi il dump in un db 'pulito' in UTF-8, non dovresti avere problemi di sorta...

Ti ringrazio molto per tutti i suggerimenti. Ho trovato questo http://kanjidict.stc.cx/recode.php ... spero funzioni bene.
Comunque una cosa non mi è chiara. Ai fini pratici quali agevolazioni comporta il fatto di convertire da Latin1 a UTF-8?
Importatndo il databese in Latin1 ho risolto il problema ma adesso mi chiedo quali siano le controindicazioni a lasciarlo così anziché convertirlo in UTF-8.

Offline emanuele

  • Amministratore IS
  • *******
  • Post: 4968
    • Mostra profilo
    • ElkArte
  • Versione SMF: Altro
  • Versione ElkArte: 1.0.x

Offline Sebbene

  • Utente IS Lv.2
  • **
  • Post: 165
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:UTF-8 e problemi importazione database
« Risposta #13 il: Sabato, 14 Dicembre 2013 13:14 »

Offline Sebbene

  • Utente IS Lv.2
  • **
  • Post: 165
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:UTF-8 e problemi importazione database
« Risposta #14 il: Martedì, 17 Dicembre 2013 12:21 »
Scusate, in phpMyAdmin se prima di esportare un database faccio l'operazione rappresentata nella foto sottostante codificandolo da latin1_swedish_ci a utf8_unicode_ci faccio bene? E' una funzione corretta per la conversione di un database?
Successivamente lo importerei su una installazione UTF-8 con traduzione  UTF-8.

 

Ripristinare vecchio database smf su nuova installazione smf

Aperto da NIO84Sezione SMF 2.0

Risposte: 7
Visite: 2049
Ultimo post Venerdì, 09 Maggio 2014 01:18
da emanuele
Manutenzione, eliminazione PM dal Database

Aperto da titaniumSezione SMF 2.0

Risposte: 22
Visite: 4734
Ultimo post Giovedì, 15 Gennaio 2015 00:57
da Flavio93Zena
Problemi disinstallazione mod

Aperto da StramoniumSezione Mods - Modifiche SMF

Risposte: 3
Visite: 981
Ultimo post Giovedì, 08 Maggio 2014 01:02
da emanuele