serik Posted July 10, 2007 Share Posted July 10, 2007 Salut, j'ai quelques problèmes d'encodage pour mon appli, qui est, je le rappelle en java. J'utilise un encodage utf-8 dans mon appli, mais l'hébergement est par défaut en 8859-1 (pas sûr). Donc je voudrai savoir comment récupérer les variables du POST correctement (présence d'accents) Autre question : comment savoir quelle est l'encodage actuel? Merci. Link to comment Share on other sites More sharing options...
Amour Posted July 10, 2007 Share Posted July 10, 2007 je cite le manuel PHP : string utf8_decode ( string data )utf8_decode décode la chaîne data , en supposant qu'elle est au format UTF-8 , et la convertit au format ISO-8859-1 . Voir aussi utf8_encode pour plus de détails sur le codage UTF-8 . Link to comment Share on other sites More sharing options...
LukeSkyPator Posted July 10, 2007 Share Posted July 10, 2007 En PHP, il vaut mieux utiliser iconv. utf8-decode et encode fait le lien utf8 -> ISO-8859-1. Donc, si tu connais pas ton encodage de base (windows est en windows-55quelquechose), préférer iconv. Par contre, j'ai du mal à suivre... Ton appli est en java et ton topic parle de PHP... LSP, le manchot qui doit être fatigué Link to comment Share on other sites More sharing options...
astero-H Posted July 10, 2007 Share Posted July 10, 2007 Peut être un <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> dans le header de la page qui contient ton formulaire si c'est pas déjà fait ? va savoir, peut être que le navigateur se base là dessus pour l'encodage des données du formulaire Link to comment Share on other sites More sharing options...
LukeSkyPator Posted July 10, 2007 Share Posted July 10, 2007 La balise meta sert à indiquer au navigateur dans quel charset lire le flux. Ce qui formatte le charset, c'est le serveur et également, le charset dans lequel tu as écrits ton code. Genre, en JAVA, mais aussi en PHP, tu peux régler le charset du flux via la méthode content-type("text/html charset=UTF-8") ou un truc du genre. Enfin, là chui plus en état, je me suis pris la tête la dessus toute la journée au boulot :'( LSP, le manchot qui pleure des larmes de sang Link to comment Share on other sites More sharing options...
astero-H Posted July 10, 2007 Share Posted July 10, 2007 Après c'est bizarre quand même, j'ai jamais eu ce pb alors que j'ai aussi eu ma période UTF-8... Les données post étaient récupérées normalement et toussa... Sinon pour voir le charset utilisé par php et apache, les options de iconv et tout le bordel, un p'tit phpinfo() devrait faire l'affaire. Link to comment Share on other sites More sharing options...
serik Posted July 22, 2007 Author Share Posted July 22, 2007 Une partie de mon code : String encodeType = "ISO-8859-1" String var_Id=null; String var_Key=null; String var_PartyName=null; String var_Ip=null; String var_Port=null; try { var_Id = "&"+URLEncoder.encode("Id", encodeType)+"="+URLEncoder.encode(Id, encodeType); var_Key = "&"+URLEncoder.encode("Key", encodeType)+"="+URLEncoder.encode(Key, encodeType); var_PartyName = "&"+URLEncoder.encode("PartyName", encodeType)+"="+URLEncoder.encode(PartyName, encodeType); var_Ip = "&"+URLEncoder.encode("Ip", encodeType)+"="+URLEncoder.encode(Ip, encodeType); var_Port = "&"+URLEncoder.encode("Port", encodeType)+"="+URLEncoder.encode(Port, encodeType); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } // Exécution du script URL url; try { url = new URL(Environment.siteBase+"lescript.php"); } catch (MalformedURLException e1) { e1.printStackTrace(); throw new IllegalStateException("MalformedURLException.java"); } InputStream is = null; OutputStream os = null; try { //création de la connection URLConnection conn = url.openConnection(); conn.setDoOutput(true); //envoi de la requête os = conn.getOutputStream(); os.write(var_Id.getBytes()); os.write(var_Key.getBytes()); os.write(var_PartyName.getBytes()); os.write(var_Ip.getBytes()); os.write(var_Port.getBytes()); os.flush(); //lecture de la réponse is = conn.getInputStream(); ........ Le problème c'est que selon les servers ils n'ont pas forcément le même charset. Pour l'instant je suis hébergé par OVH donc j'ai un charset en 8859-1, mais si je rajoutais un serveur externe en UTF-8? Link to comment Share on other sites More sharing options...
theocrite Posted July 23, 2007 Share Posted July 23, 2007 C'est ton hébergeur qui choisit ton charset ? De toutes façons l'utf8 est le plus complet. À défaut d'utf8 utilise au moins l'iso-8859-15 pour pouvoir utiliser le français... Link to comment Share on other sites More sharing options...
serik Posted July 25, 2007 Author Share Posted July 25, 2007 Merci pour les réponses, y'a une dernière question que je me pose : quel est, entre les deux, le meilleur charset pour : - les performances (comparaison de chaine, l'interfaçage avec java...) - l'espace occupé dans la BDD ??? Link to comment Share on other sites More sharing options...
astero-H Posted July 26, 2007 Share Posted July 26, 2007 Pour les perfs je pense que UTF-8 doit être plus gourmand vu qu'un caractère = 2 octets Idem pour l'espace occupé dans la BD... 2x plus en gros Pour l'interfaçage Java je sais pas, mais pour ce qui est des trucs genre phpMyAdmin et tous les outils mySQL officiels bah ça foire... peut être qu'ils ont corrigé le tir mais ya 6 mois les caractères spéciaux étaient pas gérés... C'est ce qui m'a fait abandonner UTF-8 Link to comment Share on other sites More sharing options...
fantome84 Posted July 26, 2007 Share Posted July 26, 2007 Pour ce qui est de la taille je vien de tester avec des fichier texte, il y a une différence de taille (x2) que pour les caractère spéciaux (çàéè), mais les charactères (abc¤) prènnent autant de place. Sinon pour ce qui est de phpMyAdmin il fonctionne trés bien avec l'utf8 (tester sur un serveur installé en iso avec un site en utf8 et testé sur un serveur full utf8) Sinon a mon avis c'est pas pour rien que de nombreuse distribution linux passe à l'utf8, pour moi j'ai définitivement abandoné l'iso. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.