CU4C字符集檢測和轉換,C 版本

2021-10-01 08:16:20 字數 2213 閱讀 4633

1.icuuc簡介

icu4c是icu在c/c++平台下的版本, icu(international component for unicode)是基於」ibm公共許可證」的,與開源組織合作研究的, 用於支援軟體國際化的開源專案。icu4c提供了c/c++平台強大的國際化開發能力,軟體開發者幾乎可以使用icu4c解決任何國際化的問題,根據各地的風俗和語言習慣,實現對數字、貨幣、時間、日期、和訊息的格式化、解析,對字串進行大小寫轉換、整理、搜尋和排序等功能,必須一提的是,icu4c提供了強大的bidi演算法,對阿拉伯語等bidi語言提供了完善的支援。

tar -zxvf icu4c-49_1_2-src.tgz

cd icu/source

./configure

make

make install12

3453.**

3.1 myicu.h

#ifndef myicu_h

#define myicu_h

#include 「unicode/utypes.h」

#include 「unicode/ucsdet.h」

#include 「unicode/ucnv.h」

#include

#include

#include

#include

#include

using namespace std;

#define buf_max 4096

class myicu;

#endif //myicu_h12

3456

78910

1112

1314

1516

1718

1920

2122

2324

2526

273.2 myicu.cpp

#include 「myicu.h」

const int buffsize=8192;

myicu::myicu(const char* filename):m_filename(filename)

myicu::~myicu()

bool myicu::detecttextencoding()

cout<#endif

if(matchcount > 0)

cout<<"charset = "3456

78910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

3536

3738

3940

4142

4344

4546

4748

4950

5152

5354

5556

5758

5960

6162

6364

6566

6768

6970

7172

7374

7576

7778

7980

8182

8384

8586

8788

8990

9192

9394

9596

9798

99100

101102

103104

105106

107108

109110

111112

3.3 main.cpp

#include 「myicu.h」

#include

#include

#define buf_max 4096

int main(){

const char* filename = 「123.txt」;

myicu myicu(filename);

//char* buff = new char[126];

bool flag = myicu.detecttextencoding();

if(!flag){

std::cout<<「解析錯誤!」1將/usr/local/目錄加進去,然後再

ldconfig

1就行了。

你們可以試下自己準備的檔案。

Unicode字符集和多字符集

由於各國語言的加入,ascii已經不能滿足資訊交流的需要,因此,為了能夠表示其它國家的文字,各國在ascii的基礎上制定了自己的字符集,它們正式的名稱應該是mbcs multi byte chactacter system,即多位元組字元系統 型別說明 unicode ansi 通用型別 字元wch...

字符集和字符集編碼詳解

gb2312 gbk ascii asni unicode utf 8等等,這些字眼非常常見,同時帶來許多的問題。本文只是從理解的角度,說明以上內容的不同含義從而達到區分其用法的目的是夠了的。至於實現方式,可以查閱各自的詳細標準官方文件。先解釋乙個概念,什麼是字符集,嗯,不解釋了,我弄乙個吧 從今以...

寬位元組字符集和多字符集

unicode 寬位元組字符集 1.如何取得乙個既包含單位元組字元又包含雙位元組字元的字串的字元個數?可以呼叫microsoft visual c 的執行期庫包含函式 mbslen來操作多位元組 既包括單位元組也包括雙位元組 字串。呼叫strlen函式,無法真正了解字串中究竟有多少字元,它只能告訴你...