首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSMutableString stringWithFormat

NSMutableString stringWithFormat
EN

Stack Overflow用户
提问于 2010-11-20 22:28:22
回答 1查看 1.1K关注 0票数 0

我有java代码,它为MD5 munge准备一条消息。

代码语言:javascript
复制
private static char[] jimsCopyRight = {

'C','o','p','y','r','i','g','h','t',':',‘',0xa9,'};

中使用的

代码语言:javascript
复制
StringBuffer message = new StringBuffer();

message.append(name.toLowerCase());message.append(新字符串(JimsCopyRight));

当我用以下方式打印消息时

代码语言:javascript
复制
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。

在我尝试过的事情中

代码语言:javascript
复制
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 char c 169

任何帮助,使NSMutableString是相同的StringBuffer将不胜感激。

问题是,当我在MD5中处理这两个字符串时,当我添加0xa 9时,得到了不同的结果。这些指纹只是为了看一下琴弦。

我认为这与char[]中的NSMutableString和NSMutableString的构造有关。我不认为它们是相同的价值观。

我有一些C代码,它将版权声明为

代码语言:javascript
复制
#define jimsCopyRight  "Copyright: � "

版权的Java MD5和C MD5是相同的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-20 23:03:06

版权符号是你想要的,对吗?根据你的问题,这就是你所得到的。那有什么问题吗?

(这就是为什么魔术数字不好的原因。我无法从您的代码中单独看出您想要的编码是什么0xa9。)

如果您想知道为什么上面写的是169而不是251,那是因为Java打印出八进制(基-8)字符转义序列,而C标准库中的%d、Core和Foundation则将值打印为十进制(基-10)。\251不是二百五十一个字.使用%o将值打印为八进制,或使用%x将其打印为十六进制(基数为-16)。或者,使用Calculator.app的编程模式将251从八进制转换为小数点。

顺便说一句,您可以使用%@格式序列和NSUserName函数将用户名插入到字符串中,就像在Java代码中所做的那样。不需要硬编码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4235346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档