Joomla.it Forum
Componenti per Joomla! => Gestione utenti e community => : cipo691 14 Feb 2008, 17:14:01
-
Salve a tutti, mi rimane anche un pò difficile spiegarvi il problema e tutto quello che ho provato a fare...spero di riuscire...
Avevo un problema di codifica caratteri (accentati) che, inizialmente, avevo risolto impostando dalla configurazione globale di joomla it_IT.UTF-8.
Successivamente mi sono accorto che non andava bene in alcune parti...
Allora ho forzato la codifica dei caratteri inserendo la stringa AddDefaultCharset utf-8 all'interno del file .htaccess.
Sembrava tutto ok ma quando sono andato a provare CB il problema si ripresentava.
Allora mi sono preoccupato di andare a sostituire nel file italian.php di CB tutti i caratteri accentati con &Xgrave;.
Il problema è che alcune parole le visualizza bene altre male (o meglio visualizza un punto interrogativo) eppure sono codificate allo stesso modo...
Se provo a settare i caratteri del browser a iso 8859-1 la situazione si inverte...
Sono disperato e vi assicuro che le ho provate tutte (anche a settare tutto in iso 8859-1) ma non riesco a risolvere...
C'è qualcuno di buon cuore che mi aiuta?
Avrei dovuto fare il redirect dell'url entro domani :(
Ringrazio anticipatamente
-
ma, scusami, hai pensato che solo impostando utf-8 in configurazione globale potesse trasformare il sito in utf-8?
per ottenere l'obiettivo utf-8 dovresti:
1) fare il download di tutto il database, aprirlo con babelpad o con notepad++ e convertire tutto il testo del database in utf-8.
2) cercare tutte le stringhe "latin" e inserire l'unicode;
3) modificare la "collaction" del database;
4) reimportare tutto;
5) nel file lingua inserire una riga (anche alla fine, se vuoi) con la quale imposti la variabile LC_ALL (potresti anche liomitarti a LC_TIME, ma "melius abundare quam deficiere";
6) sempre nel file lingua impostare il charset in utf-8 anzichè iso-8859-1;
Ciò fatto dovresti anche poter eliminare la riga dell'htaccess.
Se utilizzi joomfish non hai bisogno di impostare LC_ALL perché puoi configurare tramite joomfish, ma la sostituzione del charset nel file lingua la devi fare comunque
-
ma, scusami, hai pensato che solo impostando utf-8 in configurazione globale potesse trasformare il sito in utf-8?
per ottenere l'obiettivo utf-8 dovresti:
1) fare il download di tutto il database, aprirlo con babelpad o con notepad++ e convertire tutto il testo del database in utf-8.
2) cercare tutte le stringhe "latin" e inserire l'unicode;
3) modificare la "collaction" del database;
4) reimportare tutto;
5) nel file lingua inserire una riga (anche alla fine, se vuoi) con la quale imposti la variabile LC_ALL (potresti anche liomitarti a LC_TIME, ma "melius abundare quam deficiere";
6) sempre nel file lingua impostare il charset in utf-8 anzichè iso-8859-1;
Ciò fatto dovresti anche poter eliminare la riga dell'htaccess.
Se utilizzi joomfish non hai bisogno di impostare LC_ALL perché puoi configurare tramite joomfish, ma la sostituzione del charset nel file lingua la devi fare comunque
Grazie sali per avermi risposto...
1) Ho provato ad aprire il database con notepad++, quindi dovrei semplicemente selezionare "codifica in UTF-8" e salvare oppure sostituire tutti CHARSET=latin1 in CHARSET=UTF-8?
3) ehmmm...come modifico il "collaction" database?
5) Potresti, gentilmente, dirmi la stinga da inserire per esteso?
Purtroppo non utilizzo joomfish...
Grazie per la disponibilità...
-
per la modifica del database ... http://forum.html.it/forum/showthread/t-1114186.html (http://forum.html.it/forum/showthread/t-1114186.html)
Se utilizzi notepad++ devi:
aprire il .sql con il blocco note di windows;
aprire notepad++ su foglio bianco e settare quel foglio in utf8 (deseleziona il BOM);
selezionare tutto il testo del database sul blocco note di windows; copia+incolla sul notepad++ e salva.
cercati tutte le stringhe in cui trovi latin1 e sostituisci il charset con utf8_general_ci. Salva tutto nuovamente e importa nel db che hai convertito.
Ricordati di fare backup assoluto, totale, completo ... insomma, non vorrei che - andasse storto qualcosa - mi dovessi trovare con le bombe sotto casa :o
Ovviamente, dall'istante in cui fai questa conversione, devi ricordarti di convertire tutti i file lingua che ti vengono fra i piedi, anche in fase di aggiornamenti. Dovrai fare sempre attenzione a modificare l'eventuale codifica ISO presente in UTF8.
In bocca al lupo
-
sali grazie per la disponibilità e pazienza...
potresti indicarmi anche la stringa da inserire all'interno del file lingua (LC_ALL)?
Oggi provo...
-
setlocale(LC_ALL,'it_IT.UTF-8');
Rammenta che nel file lingua hai anche
DEFINE('_ISO','charset=iso-8859-1');
da cambiare in
DEFINE('_ISO','charset=utf-8');
questo modificherà automaticamente il tag "charset" nell'header e i browser riconosceranno il set di caratteri
ricordati che it_IT.UTF-8 deve essere inserito anche nella configurazione globale.
Converti il file lingua in utf8 (stessa procedura utilizzata per la conversione del database), che altrimenti tra quadrati e punti interrogativi in rombi neri ...
-
ho provato ad inserire questa query:
INSERT INTO utf8table (utf8column)
SELECT CONVERT(latin1field USING utf8) FROM latin1table;
ma mi dà questo errore:
Errore
query SQL: Documentazione
INSERT INTO utf8table( utf8column )
SELECT CONVERT( latin1field
USING utf8 )
FROM latin1table;
Messaggio di MySQL: Documentazione
#1146 - Table 'tarantapeligna.utf8table' doesn't exist
-
ma 'utf8table', 'utf8column' etc etc sono dati di esempio da sostituire con il nome del db e delle varie tabelle e dei campi.
Senti fa una cosa, prova a lasciar perdere la conversione "accurata" del database e converti solo i contenuti e la collazione delle tabelle con il metodo del notepad++.
Dovrebbe funzionare ugualmente e con minori rischi. ;)
-
ok...adesso carico il database opportunamente modificato e ti posto i risultati :D
-
caspita, allora aspetto trepidante (nel frattempo recito il Rosario, non si sa mai ;D )
-
caspita, allora aspetto trepidante (nel frattempo recito il Rosario, non si sa mai ;D )
ehmmm...sali grazie per la pazienza che hai....
cmq c'è qualcosa che non funziona...sicuramente per colpa mia :D
Errore
query SQL:
-- phpMyAdmin SQL Dump
-- version
-- http://www.phpmyadmin.net
--
-- Host: mysql5.netsons.org
-- Generato il: 18 Feb, 2008 at 11:12 AM
-- Versione MySQL: 5.0.51
-- Versione PHP: 5.2.0-8+etch10
--
-- Database: `tarantapeligna`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `jos_banner`
--
CREATE TABLE `jos_banner` (
`bid` int( 11 ) NOT NULL AUTO_INCREMENT ,
`cid` int( 11 ) NOT NULL default '0',
`type` varchar( 10 ) NOT NULL default 'banner',
`name` varchar( 50 ) NOT NULL default '',
`imptotal` int( 11 ) NOT NULL default '0',
`impmade` int( 11 ) NOT NULL default '0',
`clicks` int( 11 ) NOT NULL default '0',
`imageurl` varchar( 100 ) NOT NULL default '',
`clickurl` varchar( 200 ) NOT NULL default '',
`date` datetime default NULL ,
`showBanner` tinyint( 1 ) NOT NULL default '0',
`checked_out` tinyint( 1 ) NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`editor` varchar( 50 ) default NULL ,
`custombannercode` text,
PRIMARY KEY ( `bid` ) ,
KEY `viewbanner` ( `showBanner` )
) ENGINE = MYISAM AUTO_INCREMENT =3DEFAULT CHARSET = utf8_general_ci AUTO_INCREMENT =3;
Messaggio di MySQL: Documentazione
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
CREATE TABLE `jos_banner` (
`bid` int(11) NOT NULL auto_increment,
' at line 1
-
ovviamente ... in fase di esportazione hai selezionato il "con drop table", vero?
auto increment, completa gli insert ... tutto selezionato ... VERO?? :D :D ;D
-
ovviamente ... in fase di esportazione hai selezionato il "con drop table", vero?
auto increment, completa gli insert ... tutto selezionato ... VERO?? :D :D ;D
ehmmm...non trovo queste opzioni da selezionare se clicco sul tasto "importa" :(
-
no, dico in fase di esportazione. Quando con phpmyadmin fai l'esportazione del db hai una serie di opzioni, fra le quali, appunto:
con drop table (quando reimporti il db, eliminerà le tabelle esistenti e le sostituirà con quelle che stai importando)
completa gli insert
aggiungi auto increment
Senti, siccome mi sento un po responsabile di eventuali guai, se hai msn, mandami in pvt il contatto che facciamo prima
-
continuate pure perchè sto lavorando sul database nello stesso identico modo...ora esporterò seguendo questi ultimi consigli e speriamo funzioni
poi dovrò avventurarmi sui file di traduzione...capire dove sono e cosa modificare
ciaoo
-
i file di traduzione? intendi i file lingua? sono nella cartella "languages" della root di joomla
-
per fortuna non sono il solo ad avere questi problemi :D
X sali...ti ho inviato messaggio privato..
-
e io ti ho gia risposto :)
-
ho provato reinserendo il database e esportandolo selezionado tutte le voci, poi ho fatto le opportune modifiche e....ecco i risultat durante l'importazione :-\
Errore
query SQL:
-- phpMyAdmin SQL Dump
-- version
-- http://www.phpmyadmin.net
--
-- Host: mysql5.netsons.org
-- Generato il: 18 Feb, 2008 at 12:13 PM
-- Versione MySQL: 5.0.51
-- Versione PHP: 5.2.0-8+etch10
SET FOREIGN_KEY_CHECKS =0;
Messaggio di MySQL: Documentazione
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
SET FOREIGN_KEY_CHECKS=0' at line 1
-
potresti, per favore, aprire msn e accettare la richiesta di aggiunzione? :-\
-
ehmm...ho accettato...e ti ho aggiunto anch'io ma....non ti vedo online...
-
ok il database nn ha avuto problemi di nessun tipo...ora sto modificando il file "italian.php"
/** templates/*.php */
DEFINE('_ISO','charset=iso-8859-1');
DEFINE('_DATE_FORMAT','l F d Y'); //Uses PHP's DATE Command Format - Depreciated
solo questo è da modificare?
-
il formato data lo puoi pure lasciare com'è.
invece rammenta di mettere, alla fine (prima di ?>)
la stringa setlocale
-
ok ho inserito setlocale (LC_ALL, "it_IT");
Io però avevo ovviato al problema in altro modo "Codice nazione: it_IT.UTF-8"...lascio così o cambio?
ho notato cmq che la situazione è invariata, ad esempio se si scrive sul guestbook con gli accenti siamo punto e a capo ???
ciaoo
-
setlocale (LC_ALL, 'it_IT.UTF-8')
sistemare anche in configurazione globale alla stessa identica maniera
-
fatto ma i nuovi post hanno ancora problemi...proverò per qualche giorno la nuova soluzione
grazie
ciaooo
-
ok dopo svariate prove tra locale e remoto il problema era nel file index.php o meglio nel codice del bridge di joomlahacks presente nella pagina. disistallando il componente e reinstallandolo sono finiti i problemi degli accenti
grazie
ciaoooo