我一直在摸不着头脑。
我想将两个韩文字符合并为一个。
ㅁ + ㅏ = 마
我如何使用NSString执行此操作?
修改
zaph的解决方案适用于两个角色。但我很难理解如何结合2个以上。
ㅁ + ㅏ + ㄴ = 만
但是
NSString *s = @"ㅁㅏㄴ";
NSString *t = [s precomposedStringWithCompatibilityMapping];
NSLog(@"%@", t);
打印出来
마ㄴ
编辑2:
我环顾四周,似乎更多涉及。喜欢'만'由3部分组成。最初的jamo,medial jamo和最后的jamo。这些需要结合起来映射到Hangul音节中的代码点,使用下面的等式。
((initial * 588) + (medial * 28) + final) + 44032
这blog post有一个非常好的解释。
答案 0 :(得分:4)
使用' - (NSString *)precomposedStringWithCompatibilityMapping'。
NSString *tc = @"ㅁㅏ";
NSLog(@"tc: '%@'", tc);
NSString *cc = [tc precomposedStringWithCompatibilityMapping];
NSLog(@"cc: '%@'", cc);
NSLog输出:
tc:'ㅁㅏ'
cc:'마'
参见Apple的技术Q& A QA1235:Converting to Precomposed Unicode
答案 1 :(得分:2)
他们实际上是不同的Unicode字符。 ㅁ(\ u3141)是" Hangul兼容性问题的一部分"阻止,并且这些角色应该自己出现(例如,当你想要说明个别的jamo时)。你想要的实际角色是\ u1106。例如,这里是\ u1106,后跟\ u1161,从Unicode表中单独复制和粘贴:마。如你所见,那些构成你想要的角色。
答案 2 :(得分:-4)
很简单:
NSString *first = @"ㅁ";
NSString *second = @"ㅏ";
NSString *combinedStr = [first stringByAppendingString:second];
NSLog(@"%@", combinedStr); // ㅁㅏ