je code Java qui prépare un message pour un munge MD5NSMutableString stringWithFormat
private static char[] jimsCopyRight = {
'C', 'o', 'p', 'y', 'r', 'i', « g ',' h ', ' t ',': ',' ', 0xa9,' '};
qui est utilisé dans
StringBuffer message = new StringBuffer();
message.append (name.toLowerCase()); message.append (new String (jimsCopyRight));
Lorsque j'imprimer le message en utilisant
for(int i = 0; i < message.length(); i++){
System.out.println ("i = "+ i +" char "+ message.substring (i, i + 1) +" charAt" + message.charAt (i)); }
je reçois i = 14 ombles \ 251 charAt \ 251 et le message.toString est jimCopyright: \ 251
Je dois construire un NSMutableString avec les mêmes caractères.
Parmi les choses que j'ai essayé
wDevCopyright = [NSString stringWithFormat:@"jimCopyright: %c ", 0xa9];
for(int i = 0; i < [message length]; i++){
NSLog(@"i = %d char %c %d", i, [message characterAtIndex:i], [message characterAtIndex:i]);
}
Ce qui me donne i = 14 ombles © 169
Toute aide à obtenir le NSMutableString être le même que le StringBuffer sera apprécié. Le problème est que lorsque je munis les deux chaînes dans MD5, j'obtiens des résultats différents lorsque j'ajoute 0xa9. Les impressions sont juste pour jeter un oeil sur les cordes.
Je pense qu'il a quelque chose à voir avec le char [] dans Java et la construction du NSMutableString. Je ne crois pas qu'ils sont les mêmes valeurs.
J'ai un code C et il déclare le droit d'auteur comme
#define jimsCopyRight "Copyright: � "
Le MD5 MD5 Java et C du droit d'auteur sont les mêmes.
0xa9 est 169, et le caractère 169 est le symbole (c), donc la question est vraiment, pourquoi le cas java pense-t-il son caractère 251? – superfell
Il semblerait que dans votre cas java, votre flux de sortie n'est pas unicode, et vous regardez le flux de sortie lui-même, et vous voyez un résultat d'encodage différent, si vous changez de boucle à – superfell
ystem.out.println ("i =" + i + "char" + message.substring (i, i + 1) + "charAT" + Integer.valueOf (message.charAt (i))); vous verrez que le char est toujours le codepoint 169 (i = 11 char © charAT 169) – superfell