Code ascii de \n [Fermé]

Signaler
-
 karine -
Bonjour à tous !

Je voudrais avoir le code ascii du \n, on m'a parlé de \015, est-ce que c'est ça ?

En fait mon probleme, c'est que j'envoie mes propres requetes a un serveur web.
Je suis sous linux et sous konqueror ça marche très bien.

Par contre sous Mozilla ça passe pas car il ne reconnait pas les \n on dirait.

Est-ce que quelqu'un saurait comment résoudre ce problème ?

Merci

6 réponses

Messages postés
29267
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
30 juillet 2020
6 894
Tape man ascii

Tu auras tout ce que tu veux notamment la ligne :

Oct Dec Hex Char
----------------------------
012 10 0A LF '\n'

NB : je sais pas pourquoi tu as besoin de ce code, mais en pratique en programmation \n c'est mieux. En c++ tu peux aussi utiliser endl, c'est encore mieux.
5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 56707 internautes nous ont dit merci ce mois-ci

Messages postés
485
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
156
bonjour

pour certains systèmes,
c'est 13 en décimal, soit D en hexa (CR pour cariage return, ou touche d'entrée)
pour d'autres, le 13 ne suffit pas, il faut un code en plus pour descendre d'une ligne, qui est 10 (fleches vers le bas)
soit \13\10 en décimal ou \D\A en hexa

le \n du C peut poser parfois un problème, car il peut représenter
un ou 2 caractères selon le cas de figure, et on est obligé de tester
c'est pour cela que certains fichiers texte ouverts avec le bloc-note de windows sont parfois tronqués.

cordialement
Messages postés
32840
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 204
le \n du C peut poser parfois un problème, car il peut représenter
un ou 2 caractères selon le cas de figure,


Exact !

\n c'est:
- 13 suivit de 10 sous Windows (0D 0A)
- 10 sous Unix (0A)
- 13 sur Macintosh (0D)

Et le pire, c'est que certains compilateurs sous Windows (par exemple C#) considèrent que \n veut seulement dire 0A.
Messages postés
57
Date d'inscription
mercredi 11 mai 2005
Statut
Membre
Dernière intervention
14 février 2009
12
ta question est pas très clair :
- si tu fait des requetes a un serveur c'est que tu fait un client HTTP
- si Mozilla ou Konqueror marche différemment avec ton soft c'est que tu fait un serveur HTTP

en tous cas ça me rappelle quand j'ai fait un serveur web en tcl,
les lignes des entetes et réponses se terminent par un crlf soit "\x0d\x0a" ou "\r\n".

exemples d'échange http (capturés avec ethereal ) :
http://thierry.larmoire.free.fr/dev/test/pwd.html
Messages postés
57
Date d'inscription
mercredi 11 mai 2005
Statut
Membre
Dernière intervention
14 février 2009
12
le \n du C peut poser parfois un problème, car il peut représenter
un ou 2 caractères selon le cas de figure,


plus exactement, se sont les fonctions printf write et consort qui transforme les "\n" en autre chose suivant la configuration du tuyau (fichier, pipe, socket ...)

par exemple en Tcl, quand je cause entête ou réponse HTTP, je configure les sockets ainsi :
fconfigure $sock -translation crlf

et
puts -nonewline $sock "GET / HTTP/1.0\n"

envoie sur la socket "GET / HTTP/1.0\r\n"
et
string length "\n"
vaut 1

les compilateurs, eux, transforment toujours le "\n" en 0x0a.
si vous ouvrez un executable généré à partir du C qui contient une chaine "toto\n", avec un editeur hexa vous retrouverez la chaine toto suivi du caractère 0x0a uniquement. d'ailleur strlen("\n") vaut toujours 1.
Merci à tous !

C'est vrai que c'est compliqué !

Je vais essayer tout ça ...

A+