文字コードを(一応)取得するにはNSStringのstringWithContentsOfFile:usedEncoding:error:を使えばできる.これは戻り値がなくて,変数のポインタで返ってくるので,ちょっと使いやすくすると下のようなメソッドを作ればOK.ちなみにシミュレータだとEUCも識別してくれるけど,実機だとやっぱりUTFだけ.
+(NSStringEncoding)getEncode:(NSString *)path
{
NSStringEncoding enc;
NSString *str = [NSString stringWithContentsOfFile:path usedEncoding:&enc error:nil];
str = nil;
return enc;
}
この問題は昔から結構有名な問題らしい.だったら未知なファイルをiconvで文字コード変換すればいいじゃんと思っても,元の文字コードが分からないとiconvは動かない.このスパイラルは抜け出せない.
0 コメント:
コメントを投稿