Jump to content

Problème encodage ACSII


Recommended Posts

Bonjour !

 

J'ai un petit problème. En effet, lorsque j'ajoute un produit sur prestashop (en webservice), l'ajout est impossible.

 

En effet, il bloque au niveau des caractère où il y a des accents.

 

Le XML d'origine est bien encodé en UTF-8, mais lorsqu'il y a la lecture du document l'ajout, il ne prend plus en compte cet encodage, et donne des caractères ASCII.

 

Du coup, le web service n'accepte pas ce caractère et n'ajoute pas le produit  :-(

 

XML SENT
xml=<?xml version="1.0"?>
<prestashop>
                        <product>
                            <reference> OC250B </reference>
                            <stock_availables node_type="stock_available"/>
                            <id_category_default>2</id_category_default>
                            <id_category>2</id_category>
                            <redirect_type>404</redirect_type>
                            <available_for_order>1</available_for_order>
                            <show_price>1</show_price>
                            <minimal_quantity>1</minimal_quantity>
                            <active>0</active>
                            <price required="true" format="isPrice">5.770</price>
                            <id_tax_rules_group format="isUnsignedId">1</id_tax_rules_group>
                            <name required="true" maxSize="128" format="isCatalogName">
                                <language id="1">Bol salade à charnière R250</language>
                            </name>
                            <link_rewrite required="true" maxSize="128" format="isLinkRewrite">
                                <language id="1" format="isUnsignedId">Bol-salade-à-charnière-R250</language>
                            </link_rewrite>
                            <associations>
                            <categories>
                                <category>2</category>
                            </categories> 
                                <tags><tag><id>1</id></tag>                            
                                </tags>
                                <product_features><product_feature><id>8</id><custom>0</custom><id_feature_value>38</id_feature_value></product_feature><product_feature><id>9</id><custom>0</custom><id_feature_value>83</id_feature_value></product_feature>                            
                                </product_features>
                           </associations>
                        </product>
                    </prestashop>

Nous pouvons voir qu'au niveau de la balise Name et Link_rewrite, il y a des caractères bizarre.

 

RETURN HTTP BODY

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<errors>
<error>
<code><![CDATA[127]]></code>
<message><![CDATA[XML error : String could not be parsed as XML
XML length : 963
Original XML : <?xml version="1.0"?>
<prestashop>
                        <product>
                            <reference> OC250B </reference>
                            <stock_availables node_type="stock_available"/>
                            <id_category_default>2</id_category_default>
                            <id_category>2</id_category>
                            <redirect_type>404</redirect_type>
                            <available_for_order>1</available_for_order>
                            <show_price>1</show_price>
                            <minimal_quantity>1</minimal_quantity>
                            <active>0</active>
                            <price required="true" format="isPrice">5.770</price>
                            <id_tax_rules_group format="isUnsignedId">1</id_tax_rules_group>
                            <name required="true" maxSize="128" format="isCatalogName">
                                <language id="1">Bol salade ]]></message>
</error>
</errors>
</prestashop>

Il y a l'erreur "String could not be parsed as XML" qui s'affiche....

 

J'ai beau essayer d'utiliser les fonctions xml_encode()  xml_decode(), ça ne change rien.

 

Avez-vous une idée du problème ?

 

 

En vous remerciant d'avance.

Edited by vik93 (see edit history)

Share this post


Link to post
Share on other sites

  • 2 weeks later...

Après plus de 10 jours de recherches, j'ai enfin trouvé la solution :

 

<![CDATA[[ élément ]]>

 

On peut l'utiliser comme ceci :

 

<language id="1"><![CDATA[ élément ]]></language>

 

Et ça marche  :-)

Edited by vik93 (see edit history)

Share this post


Link to post
Share on other sites

Il y a un autre problème, le '&' ne fonctionne pas......

 

& ne fonctionne pas, %26amp; non plus   :(  (En m'inspirant de ce lien :  http://www.prestashop.com/forums/topic/137890-webservice-cannot-handle-ampersands/?hl=%2Bampersands+%2Bwebservice#entry1111363 )

 

Par contre, quand j'utilise %26amp; ça me met cette erreur :

<message><![CDATA[Validation error: "Property Product->name is not valid"]]></message>

Alors que quand j'utilise & ça me met une erreur 500...

 

 

Et c'est repartit pour 10 jours de recherches !!!  :(

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More