J'ai une application .NET qui essaie de ftp un fichier, mais je me ferme avec 1 octet supplémentaire par ligne. Mon séparateur de ligne est Environnement.Newline, que je crois me traduit par \ n \ r. Combien d'octets est-ce? P>
8 Réponses :
\ n \ r est 2 octets. p>
deux octets. Un pour \ n et un pour \ r. P>
C'est 2 octets, mais il devrait être \ r \ n code> pas
\ n \ r code> sur Windows OSS P>
Cela dépend du codage. Dans les codages 8 bits ainsi que UTF-8, il est 2 octets. Dans UCS-2 ou UTF-16, il est 4 octets. Dans UCS-4 ou UTF-32, il est 8 octets. P>
Mais le problème est que vous êtes probablement en mode ASCII au lieu de mode image. P>
Ne sont pas UCS-4 et UTF-32 la même chose?
@ Blueraja-dannypflughoeft: pour l'instant. Mais ce n'est pas obligé de toujours être vrai.
en codage ASCII, \ N est le personnage de la nouvelle ligne 0x0a (décimal 10), \ r est le caractère de retour de chariot 0x0d (décimal 13). P>
As que Jack a déjà dit, la séquence correcte est CR-LF, non inversement. P>
FTP ajout probablement des caractères LF à votre flux si elles sont mal placées et que vous transmettez le fichier sous forme de texte. P>
Le logiciel FTP offre généralement un mode de transfert de texte binaire et de texte. En mode texte, la traduction newline se produit pendant le transfert. Cela pourrait être des informations valides, en fonction de votre problème et de la raison pour laquelle vous avez posé la question. P>
Pour répondre à la question implicite:
Pour utiliser le transfert binaire plutôt que l'ASCII-Transfert dans C #, utilisez P>
FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://example.com")); reqFTP.UseBinary = true;
Je sais que c'est une ancienne question, mais pour le bien des futurs lecteurs; Vous pouvez déterminer combien d'octets sont dans une chaîne donnée (ou une valeur de chaîne) via ce qui suit: dans ce cas; p> .NET utilise N'oubliez pas d'utiliser le codage approprié lorsque vous essayez de compter le nombre d'octets car il est différent avec chaque codage: < / p> unicode code> sauf indication contraire; Par exemple, avec un
xmlSerializer code>, vous pouvez spécifier le codage. p>