#define一个unicode字符

时间:2012-06-06 17:22:56

标签: objective-c unicode c-preprocessor

我需要定义以下2个unicode常量

/ *

平面符号  ♭  音乐平面标志  Unicode:U + 266D,UTF-8:E2 99 AD

夏普符号  ♯  MUSIC SHARP SIGN  Unicode:U + 266F,UTF-8:E2 99 AF

* /

#define kSongsSharpSymbol [NSString stringWithFormat:@"\u0266F"]
#define kSongsFlatSymbol [NSString stringWithFormat:@"\u0266D"]

当我在控制台中查看输出时,该值不是正确的符号:

  NSLog(@"Sharp Constant %@",kSongsSharpSymbol);    

我做错了什么?

2 个答案:

答案 0 :(得分:3)

删除前导零,修复此问题:

#define kSongsSharpSymbol [NSString stringWithFormat:@"\u266F"]
#define kSongsFlatSymbol [NSString stringWithFormat:@"\u266D"]

答案 1 :(得分:0)

使用stringWithFormat:(由@Slinky建议)是不必要的。解码\u由编译器完成,而不是运行时。你可以使用字符串文字:

#define kSongsSharpSymbol @"\u266F"
#define kSongsFlatSymbol @"\u266D"