У меня есть код Java, который готовит сообщение для MD5 munge
private static char[] jimsCopyRight = {
'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ':', ' ', 0xa9, ' '};
который используется в
StringBuffer message = new StringBuffer();
message.append(name.toLowerCase()); message.append (новая строка (jimsCopyRight));
Когда я распечатываю сообщение, используя
for(int i = 0; i < message.length(); i++){
System.out.println(" i = " + i + " char " + message.substring(i, i + 1) + " charAT " + message.charAt(i)); }
Я получаю i = 14 char\251 charAT\251, а message.toString - это jimCopyright:\251
Мне нужно построить NSMutableString с теми же символами.
Среди вещей, которые я пробовал
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]);
}
Что дает мне i = 14 символов © 169
Любая помощь в том, чтобы NSMutableString была такой же, как StringBuffer, будет оценена по достоинству.
Проблема в том, что когда я смешиваю две строки в MD5, я получаю разные результаты, когда добавляю 0xa9. Отпечатки нужны только для того, чтобы посмотреть на струны.
Я думаю, что это как-то связано с char[] в Java и конструкцией NSMutableString. Я не верю, что это одни и те же ценности.
У меня есть код C, и он объявляет авторские права как
#define jimsCopyRight "Copyright: � "
Java MD5 и C MD5 авторского права одинаковы.