美文网首页
iOS GBK文件转UTF-8

iOS GBK文件转UTF-8

作者: 863cda997e42 | 来源:发表于2020-06-08 13:51 被阅读0次

写了一个工具实现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

相关文章

网友评论

      本文标题:iOS GBK文件转UTF-8

      本文链接:https://www.haomeiwen.com/subject/xmoltktx.html