Newsgroup: it.comp.www.php
Titolo: Problema con archivio MySQL e Codifica caratteri

Allora vi spiego in 2 parole (non rabbrividite per cortesia che giÃ  
basto io)
MAC Windows Linux ....dati a giro...direttore "creativo" fan della mela 
marcia....Soluzione Filemaker.
Dopo mesi e mesi di casini interSO...finalmente soluzione WebServer + 
MySQL.
Preso FileMaker esportato tramite file di testo e reimportato in un 
mysql con Collation utf8_general_ci
display con pagina php
in cui
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
ovviamente la codifica di filemaker non Ã¨ quella (GRRR)e appare un bel
 
 da Lïÿ½onore ou l'amour conjugal di Jean-Nicolas Bouilly, versione 
originale di ïÿ½Fidelioïÿ½ di
 
invece di
 
 da LÃ©onore ou l'amour conjugal di Jean-Nicolas Bouilly, versione 
originale di Â«FidelioÂ» di 18
 
Ho disinserito sul browser la rilevazione automatica e per tentativi ho 
scoperto essere iso8859-1 la codifica piÃ¹ vicina allo "zero caratteri 
strani"
 
come posso risolvere in php questo problema...compreso il fatto che 
andrÃ² anche ad inserire dati via web....esiste un iso8859-1toUtf e 
viceversa?
Mi piaceva abbandonare il passato e fare inserire i nuovi dati con un 
piÃ¹ standard UTF-8 (considerando che verrÃ  usato su SO diversi)
 
GRAZIE
 
-- 
----- Italliaaaaa 3227! -----
Ho visto cose che voi umani non potreste immaginare... navi da 
combattimento in fiamme al largo dei bastioni di Orione. E ho visto i 
raggi B balenare nel buio vicino alle porte di Tannhauser. E tutti quei 
momenti andranno perduti nel tempo come lacrime nella pioggia. Ãˆ tempo 
di morire...
 
UnitÃ  NEXUS6 Roy Batty N6MAA10816 Ment.LEV A
 
 


utf8_decode($data);
per convertire da UTF-8 a ISO-8859-1
 
invece
utf8_encode($data);
per convertire da ISO-8859-1 to UTF-8
 
io non le ho mai usate ma ora che lo ho trovate ...
ciao
 

 wrote:
"porca putèna" (alla Banfi)
non funziona
il bastardo che ha fatto dataentry col mac ha scritto
Fidelio fra le due parentesi angolari ravvicinate   windows 7 me le 
identificherebbe con U00AB e U00BB "Virgoletta" e "Virgoletta destra"
un semplice
 
      $aa=$campi[titolo];
      $bb= utf8_decode($aa);
      echo $bb;
 
non basta rimane il punto interrogativo!
 
-- 
----- Italliaaaaa 3227! -----
Era Cecco, il figlio del fornaio; era un orribile butterato napoletano, 
col culo molto basso ed un alito agghiacciante tipo fogna di Calcutta.
(Fantozzi)
 
 

 non basta rimane il punto interrogativo!
 
Confermo!
mi son fatto una
function strToHex($string)
{
    $hex='';
    for ($i=0; $i < strlen($string); $i++)
    {
 
        $hex .= dechex(ord($string[$i]));
        $a= dechex(ord($string[$i])) . "  <->  ". $string[$i] . "<br 
/>";
        echo $a;
 
    }
    return $hex;
}
 
...e lanciata
e9 <-> Carattere non interpretato (il solito punto interrogativo o 
quadratino dipende dal browser)
e poi
ab e bb  appunto le virgolette con le parentesi acute
 
....pffffff che scatole!!!
 
-- 
----- Italliaaaaa 3227! -----
Soldato Joker, cosa ci fa il soldato Palla di Lardo con quel fucile in 
mano nel mio fottutissimo bagno?
 
Sergente Artman [ da: "Full Metal Jacket" ]
 
 


 
per risolvere a problemi simili (sempre su accentate) avevo preparato un 
doppio array con nel primo i 'caratteri' strani e nel secondo i 
'rimpiazzi' (nel manuale php sul sito 
php.net
 c'era un esempio con gia' 
moltissime delle lettere 'strane', penso ci sia ancora, è un esempio con 
un doppio array...e stava nella pagina di str_replace). Con i due array 
pronti utilizzavo poi (se ben ricordo, ahimè ho scritto fin troppi 
programmi tra quello e oggi) la funzione di str_replace...
 
ma per caso un uso composito di html_encode e stripslashes non può 
servire al caso? E' tutto il giorno che programmo e sono leggermente 
scoppiata, ma mi sembra di aver fatto in modo simile ultimamente....
 
Bye By
Kyla Skydragon (Sky)

 
 
se $aa e' in ISO-8859-1 e vuoi che $bb sia in utf-8 credo dovresti usare
utf8_encode, non decode
 
ciao
 


eh...che ci vuoi fare....è l'età che avanza!!!
è vero!...funziona!
 
Però aiutatemi a capire
 
1) Ho i dati codificati strani da filemaker diciamo ISO-8859-1
2) Ho un databse mysql con collation UTF8
3) Importo i dati in mysql
4) Leggo leggo e eseguo anche su mysql per convertire i dati 
esplicitamente:
ALTER TABLE nomeTabella CONVERT TO CHARACTER SET utf8
5) pagina php con XHTML che dichiara
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
"
http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd
">
<html xmlns="
http://www.w3.org/1999/xhtml
">
 
<head>
<link href="
http://fonts.googleapis.com/css?family=Allerta:regular
" 
rel="stylesheet" type="text/css" />
<meta content="it" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Scheda tecnica</title
....etc etc....
 
 
 
6)
 $aa=$campi[titolo];
      echo("<br />". $aa ."<br />");
PRRRRRRRRRRRRRRRRRRRRRRRR quadratini e punti interrogativi (Mozilla o 
IE)
mentre
     $bb=  utf8_encode($aa);
             echo($bb);
mi stampa tutto corretto!
 
6-bis) se lancio phpmyadmin sul server mysql io vedo CORRETTAMENTE il 
campo
 
 
L'errore c'è è mio ...ma non lo vedo!
Il browser se ne frega di quei tag meta?phpmyadmin ha i soliti tag!
 
-- 
----- Italliaaaaa 3227! -----
Please, visits website, but please visit Italy. We’re t’best country in 
the world in terms of: Culture, Landscapes, Arts, History, Cities, 
Villages, Beautiful countryside, seaside, mountains. That is Italy. You 
know, perhaps, you dreaming about. But please, visit or country. We 
will welcome you warmly and with a better organization.
(Francesco Rutelli Video a: 
http://www.martek.it/dblog/mostraVideo.asp?p=/public/dblog/Rutelli1.wmv
 
)
 
 

 eh...che ci vuoi fare....è l'età che avanza!!!
 
a chi lo dici ... :)

dopo dopo il collegamento a mysql e prima di estrarre i dati con le
varie select hai provato la funzione mysql_set_charset ?
 
$link = mysql_connect('localhost', 'user', 'password');
mysql_set_charset('utf8',$link);
 
credo sia analogo a eseguire questa query:
$sql = 'SET NAMES \'utf8\' COLLATE \'utf8_general_ci\'';
if (!$res = mysql_query($sql)) die("errore! ".mysql_error());
 
ciao
 
 
 

 On Thu, 22 Sep 2011 09:16:50 +0200
zac> ciao
 
domani provo e ti sò dire ....grazie!
 
 


zac
CAVOLO....funziona....e senza l'ambarandan a posteriori!
nel codice della connessione
  //AGGIUNTA PER PROBLEMI DI CHARSET
  mysql_set_charset('utf8',$conn);
 
nella pagina
 
$aa=$campi[titolo];
      echo $aa;
 
GRAZIE!
 
 

 GRAZIE!
 
di nulla