Skip to content

Instantly share code, notes, and snippets.

@kamukiriri
Created November 27, 2012 14:55
Show Gist options
  • Save kamukiriri/4154646 to your computer and use it in GitHub Desktop.
Save kamukiriri/4154646 to your computer and use it in GitHub Desktop.
iOS6.0で発生するCFStringTransformの誤変換を回避するバッドノウハウ
//おかしいやつ
- (void)viewDidLoad
{
[super viewDidLoad];
[self HalfToFull];
//以後ずっと全角になる
[self HalfToHalf]; //半角のままであってほしい
[self FullToHalf]; //半角になってほしい
[self FullToFull]; //もともと全角
[self HiraToKata];
//以後ずっとカタカナになる
[self HiraToHira]; //ひらがなのままであってほしい
[self KataToHira]; //ひらがなになってほしい
[self KataToKata]; //もともとカタカナ
}
-(void)FullToHalf{
NSMutableString *fstr = [NSMutableString stringWithString:@"a"];
NSLog(@"full-> %@", fstr);
CFStringTransform((__bridge CFMutableStringRef)fstr, NULL, kCFStringTransformFullwidthHalfwidth, false);
NSLog(@"half %@", fstr);
}
-(void) FullToFull{
NSMutableString *fstr = [NSMutableString stringWithString:@"a"];
NSLog(@"full-> %@", fstr);
CFStringTransform((__bridge CFMutableStringRef)fstr, NULL, kCFStringTransformFullwidthHalfwidth, true);
NSLog(@"full %@", fstr);
}
-(void) HalfToFull{
NSMutableString *hstr = [NSMutableString stringWithString:@"a"];
NSLog(@"half-> %@", hstr);
CFStringTransform((__bridge CFMutableStringRef)hstr, NULL, kCFStringTransformFullwidthHalfwidth, true);
NSLog(@"full %@", hstr);
}
-(void) HalfToHalf{
NSMutableString *hstr = [NSMutableString stringWithString:@"a"];
NSLog(@"half-> %@", hstr);
CFStringTransform((__bridge CFMutableStringRef)hstr, NULL, kCFStringTransformFullwidthHalfwidth, false);
NSLog(@"half %@", hstr);
}
-(void) HiraToKata{
NSMutableString *hstr = [NSMutableString stringWithString:@"あ"];
NSLog(@"Hira-> %@", hstr);
CFStringTransform((__bridge CFMutableStringRef)hstr, NULL, kCFStringTransformHiraganaKatakana, false);
NSLog(@"Kata %@", hstr);
}
-(void) HiraToHira{
NSMutableString *hstr = [NSMutableString stringWithString:@"あ"];
NSLog(@"Hira-> %@", hstr);
CFStringTransform((__bridge CFMutableStringRef)hstr, NULL, kCFStringTransformHiraganaKatakana, true);
NSLog(@"Hira %@", hstr);
}
-(void) KataToHira{
NSMutableString *hstr = [NSMutableString stringWithString:@"ア"];
NSLog(@"Kata-> %@", hstr);
CFStringTransform((__bridge CFMutableStringRef)hstr, NULL, kCFStringTransformHiraganaKatakana, true);
NSLog(@"Hira %@", hstr);
}
-(void) KataToKata{
NSMutableString *hstr = [NSMutableString stringWithString:@"ア"];
NSLog(@"Kata-> %@", hstr);
CFStringTransform((__bridge CFMutableStringRef)hstr, NULL, kCFStringTransformHiraganaKatakana, false);
NSLog(@"Kata %@", hstr);
}
//だいじょうぶなやつ
- (void)viewDidLoad
{
[super viewDidLoad];
[self HalfToFull];
//なぜかひらがな・カタカナ変換すると・・・
[self HiraToKata];
//ちゃんと半角になる
[self FullToHalf];
[self HiraToKata];
//なぜか半角・全角変換すると・・・
[self HalfToFull];
//ちゃんとひらがなになる
[self KataToHira];
}
-(void)FullToHalf{
NSMutableString *fstr = [NSMutableString stringWithString:@"a"];
NSLog(@"full-> %@", fstr);
CFStringTransform((__bridge CFMutableStringRef)fstr, NULL, kCFStringTransformFullwidthHalfwidth, false);
NSLog(@"half %@", fstr);
}
-(void) FullToFull{
NSMutableString *fstr = [NSMutableString stringWithString:@"a"];
NSLog(@"full-> %@", fstr);
CFStringTransform((__bridge CFMutableStringRef)fstr, NULL, kCFStringTransformFullwidthHalfwidth, true);
NSLog(@"full %@", fstr);
}
-(void) HalfToFull{
NSMutableString *hstr = [NSMutableString stringWithString:@"a"];
NSLog(@"half-> %@", hstr);
CFStringTransform((__bridge CFMutableStringRef)hstr, NULL, kCFStringTransformFullwidthHalfwidth, true);
NSLog(@"full %@", hstr);
}
-(void) HalfToHalf{
NSMutableString *hstr = [NSMutableString stringWithString:@"a"];
NSLog(@"half-> %@", hstr);
CFStringTransform((__bridge CFMutableStringRef)hstr, NULL, kCFStringTransformFullwidthHalfwidth, false);
NSLog(@"half %@", hstr);
}
-(void) HiraToKata{
NSMutableString *hstr = [NSMutableString stringWithString:@"あ"];
NSLog(@"Hira-> %@", hstr);
CFStringTransform((__bridge CFMutableStringRef)hstr, NULL, kCFStringTransformHiraganaKatakana, false);
NSLog(@"Kata %@", hstr);
}
-(void) HiraToHira{
NSMutableString *hstr = [NSMutableString stringWithString:@"あ"];
NSLog(@"Hira-> %@", hstr);
CFStringTransform((__bridge CFMutableStringRef)hstr, NULL, kCFStringTransformHiraganaKatakana, true);
NSLog(@"Hira %@", hstr);
}
-(void) KataToHira{
NSMutableString *hstr = [NSMutableString stringWithString:@"ア"];
NSLog(@"Kata-> %@", hstr);
CFStringTransform((__bridge CFMutableStringRef)hstr, NULL, kCFStringTransformHiraganaKatakana, true);
NSLog(@"Hira %@", hstr);
}
-(void) KataToKata{
NSMutableString *hstr = [NSMutableString stringWithString:@"ア"];
NSLog(@"Kata-> %@", hstr);
CFStringTransform((__bridge CFMutableStringRef)hstr, NULL, kCFStringTransformHiraganaKatakana, false);
NSLog(@"Kata %@", hstr);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment