亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IOS 實現TXT文本自動識別編碼的方法。

發布時間:2020-07-13 06:53:15 來源:網絡 閱讀:3103 作者:zfajqp 欄目:移動開發

TXT識別編碼是個復雜的問題。幸好有c/c++的一個庫能識別。

庫的叫uchardet,可以自己去github下載。但是沒有具體的使用手冊什么的。小研究了下 。

把uchardet文件夾下的.h和.cpp和.tab文件全部copy到自己的應用里面。然后在要自動識別編碼的地方

#include "uchardet.h"


如下代碼實現。

//

//  EBOOKReadViewController.m

//  EBOOk

//

//  Created by on 13-12-18.

//  Copyright (c) 2013. All rights reserved.

//


#import "EBOOKReadViewController.h"

#include "uchardet.h"

#define NUMBER_OF_SAMPLES   (2048)

@interfaceEBOOKReadViewController ()

{

constchar *encode;

}

@end


@implementation EBOOKReadViewController


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

self = [superinitWithNibName:nibNameOrNil bundle:nibBundleOrNil];

if (self) {

// Custom initialization

   }

returnself;

}


- (void)viewDidLoad

{

   [superviewDidLoad];


NSString *path=[[NSBundlemainBundle] pathForResource:@"五界至尊" ofType:@"txt"];


int result=[selfhaveTextBianMa:[path UTF8String]];

CFStringEncoding cfEncode = 0;

if (result==0) {


NSString *encodeStr=[[NSStringalloc] initWithCString:encodeencoding:NSUTF8StringEncoding];







if ([encodeStr isEqualToString:@"gb18030"]) {


           cfEncode= kCFStringEncodingGB_18030_2000;


       }elseif([encodeStr isEqualToString:@"Big5"]){


           cfEncode= kCFStringEncodingBig5;


       }elseif([encodeStr isEqualToString:@"UTF-8"]){


           cfEncode= kCFStringEncodingUTF8;


       }elseif([encodeStr isEqualToString:@"Shift_JIS"]){


           cfEncode= kCFStringEncodingShiftJIS;


       }elseif([encodeStr isEqualToString:@"windows-1252"]){


           cfEncode= kCFStringEncodingWindowsLatin1;


       }elseif([encodeStr isEqualToString:@"x-euc-tw"]){


           cfEncode= kCFStringEncodingEUC_TW;


       }elseif([encodeStr isEqualToString:@"EUC-KR"]){


           cfEncode= kCFStringEncodingEUC_KR;


       }elseif([encodeStr isEqualToString:@"EUC-JP"]){


           cfEncode= kCFStringEncodingEUC_JP;


       }


   }


NSError *err;

NSString *str=[NSStringstringWithContentsOfFile:path encoding:CFStringConvertEncodingToNSStringEncoding(cfEncode) error:&err];


NSString *st=[str substringToIndex:1000];


self.txtView.text=st;


}

-(int)haveTextBianMa:(constchar*)strTxtPath{

FILE* file;

char buf[NUMBER_OF_SAMPLES];

size_t len;

uchardet_t ud;


/* 打開被檢測文本文件,并讀取一定數量的樣本字符 */

   file = fopen(strTxtPath, "rt");

if (file==NULL) {

printf("文件打開失敗!\n");

return1;

   }

   len = fread(buf, sizeof(char), NUMBER_OF_SAMPLES, file);

fclose(file);


   ud = uchardet_new();

if(uchardet_handle_data(ud, buf, len) != 0)

   {

printf("分析編碼失敗!\n");

return -1;

   }

uchardet_data_end(ud);

printf("文本的編碼方式是%s\n", uchardet_get_charset(ud));  

encode=uchardet_get_charset(ud);


uchardet_delete(ud);


return0;

}

- (void)didReceiveMemoryWarning

{

   [superdidReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}


@end


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和林格尔县| 石首市| 广灵县| 白城市| 蛟河市| 图木舒克市| 惠来县| 布尔津县| 故城县| 交口县| 安远县| 昭苏县| 咸阳市| 兰溪市| 富宁县| 宣武区| 扎鲁特旗| 罗山县| 壤塘县| 合江县| 汝阳县| 莱西市| 土默特左旗| 教育| 台湾省| 昭觉县| 阿拉善左旗| 新昌县| 温宿县| 东乡族自治县| 疏附县| 修武县| 开鲁县| 沙田区| 盐城市| 岑巩县| 峨山| 抚松县| 封开县| 元朗区| 玉门市|