serik Posté(e) le 10 juillet 2007 Partager Posté(e) le 10 juillet 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Amour Posté(e) le 10 juillet 2007 Partager Posté(e) le 10 juillet 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 . Lien vers le commentaire Partager sur d’autres sites More sharing options...
LukeSkyPator Posté(e) le 10 juillet 2007 Partager Posté(e) le 10 juillet 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é Lien vers le commentaire Partager sur d’autres sites More sharing options...
astero-H Posté(e) le 10 juillet 2007 Partager Posté(e) le 10 juillet 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
LukeSkyPator Posté(e) le 10 juillet 2007 Partager Posté(e) le 10 juillet 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
astero-H Posté(e) le 10 juillet 2007 Partager Posté(e) le 10 juillet 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
serik Posté(e) le 22 juillet 2007 Auteur Partager Posté(e) le 22 juillet 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? Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 23 juillet 2007 Partager Posté(e) le 23 juillet 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... Lien vers le commentaire Partager sur d’autres sites More sharing options...
serik Posté(e) le 25 juillet 2007 Auteur Partager Posté(e) le 25 juillet 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 ??? Lien vers le commentaire Partager sur d’autres sites More sharing options...
astero-H Posté(e) le 26 juillet 2007 Partager Posté(e) le 26 juillet 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
fantome84 Posté(e) le 26 juillet 2007 Partager Posté(e) le 26 juillet 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.