写了一个工具实现GBK文件转UTF-8或者UTF-8转GBK。
具体代码如下:
#import <Foundation/Foundation.h>
#define GBK_CODE @"gbk"
#define UTF_8_CODE @"utf-8"
int main(int argc, const char * argv[]) {
@autoreleasepool {
if (argc < 7) {
printf("use: -f gbk -t utf-8 inputfile -o outputfile\n");
printf("use: -f utf-8 -t gbk inputfile -o outputfile\n");
return 0;
}
NSString *from = [NSString stringWithUTF8String:argv[2]];
NSString *to = [NSString stringWithUTF8String:argv[4]];
NSFileManager *manager = [NSFileManager defaultManager];
NSString *currentDir = manager.currentDirectoryPath;
NSString *inputPath = [currentDir stringByAppendingPathComponent:[NSString stringWithUTF8String:argv[5]]];
NSString *outputPath = [currentDir stringByAppendingPathComponent:[NSString stringWithUTF8String:argv[7]]];
NSStringEncoding gbk = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
if ([from isEqualToString:GBK_CODE] && [to isEqualToString:UTF_8_CODE]) {
NSString * str = [NSString stringWithContentsOfFile:inputPath encoding:gbk error:nil];
[str writeToFile:outputPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
} else if ([to isEqualToString:GBK_CODE] && [from isEqualToString:UTF_8_CODE]) {
NSString * str = [NSString stringWithContentsOfFile:inputPath encoding:NSUTF8StringEncoding error:nil];
[str writeToFile:outputPath atomically:YES encoding:gbk error:nil];
}
}
return 0;
}
使用方法,编译上面代码,得到可执行程序。
./cconv -f utf-8 -t gbk inputfile -o outputfile
网友评论