日本語が正しく表示されない
//配列 NSArray *arr = @[@"AAA",@"いいい",@"ううう"]; NSLog(@"result %@",arr); /* result ( AAA, "\U3044\U3044\U3044", "\U3046\U3046\U3046" ) */
要素の中に日本語が含まれている配列の中身を表示させると、日本語がうまく表示されませんでした。
for-inでは正しい
for(id s in arr) { NSLog(@"%@",(NSString*)s); } /* AAA いいい ううう */
for-inでは日本語が表示されました。
インデックスを指定すると正しく表示される
NSLog(@"%@",arr[1]);//いいい
直接要素を指定するとOKでした。
NSArrayを「すべて」NSLogすることに原因がある?
こちらのリンクを読むと、NSLogがdescriptionWithLocaleというものを暗黙的に呼び出しているらしいです。
NSArray MethodSwizzlingを使用しNSLogで日本語文字列を文字化け(正確に言うとUTF)させずに出力する - Qiita
辞書を使うのでしょうか。
http://www.glpgs.com/e-blog/archives/170
コンパイラをGDBにするという方法も見つかったのですが、Xcode5だとGDBが入っていませんでした・・・。
結局よくわからず、眠くなったので諦めました。