Jump to content

Problema codifica per script di esportazione


maipiusenza

Recommended Posts

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 by maipiusenza (see edit history)
Link to comment
Share on other sites

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...