maipiusenza Posted May 24, 2012 Share Posted May 24, 2012 (edited) Salve a tutti. Sto impazzendo con uno script che mi dovrebbe esportare gli articoli in google shopping. Avevo un vecchio script per la versione 1.3 che ho modificato per la 1.4. Ci sono alcuni moduli che lo fanno, ma mi creano un XML statico, io lo voglio che si aggiorni ad ogni chiamata. Funziona tutto, solo ho problemi con la codifica del carattere speciale di trademark (presente in alcuni titoli). il file, l'header, l'encoding del file xml e il DB sono settati su UTF-8 La cosa strana è che se recupero i file e basta ho in output caratteri come � al posto delle accentate. Quasi tutto si sistema se uso $prod_name = utf8_encode ( $prod_name ); A questo punto le accentate sono apposto, ma sul mio browser (sia quando guardo il codice che in front viiew, il carattere ™ sparisce (e mi andrebbe pure bene), ma quando carico il file su google, mi da errore dicendo che c'è un carattere non valido. Se forzo il nome del titolo aggiungendo ™ alla fine di ogni stringa, google lo accetta senza problemi. Sembra sia un problema nel passaggio da DB alla pagina. ho provato inutilmente con righe tipo: $prod_name = str_replace("™", "-----", $prod_name); ma vengono ignorate. Alla fine ho provato un echo mb_detect_encoding($prod_name) e mi risulta quasi sempre ASCII, tranne per le stringhe che contengono caratteri accentati (UTF-8), mentre per le stringhe col trademark non mi restituisce nulla. Idee su come agire (nell'immediato potrei togliere il TM dai titoli, ma vorrei evitare problemi simili con altri caratteri in futuro. Grazie mille Nadia Edited May 24, 2012 by maipiusenza (see edit history) Link to comment Share on other sites More sharing options...
maipiusenza Posted May 24, 2012 Author Share Posted May 24, 2012 Altre info utili: se tolgo $prod_name = utf8_encode ($prod_name); Il carattere TM ricompare, ma, come tutte le accentate, viene sostituito dal � Qui potete vedere il file con utf8_encode attivo, che non mostra il TM ma che viene visto da google come carattere non valido (se nel browser cambio encoding, vedo caratteri strani al posto del vuoto. http://www.maipiusenza.com/google-shopping3c.php prima di ogni tag <item> ho inserito un echo mb_detect_encoding($prod_name) . '---'.mb_detect_encoding($prod_desc); Grazie Nadia Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now