Qt檔案編碼轉換工具(二) C 判斷檔案編碼

2021-09-10 01:18:47 字數 2135 閱讀 1465

目錄

上一節

如何判斷檔案編碼

下一節qt文字轉化工具 realase版本

qt檔案編碼轉換工具原始碼

qt檔案編碼轉換工具(一) 專案介紹

程式執行截圖如下:

這一節來說明下檔案編碼,這裡舉乙個utf-8的例子!

在windows端,建立乙個txt檔案,空檔案,這裡windows會自動把他判斷為ascii編碼!

如果把他給成utf-8編碼,此時還是空檔案,但還是有3位元組:

現在以十六進製制看看這檔案:

這裡就可以知道如何判斷了!

此時會多出乙個檔案頭!!!通過這個檔案頭即可判斷,這裡來總結下其他編碼:

ascii

非下面3個

unicode

ff fe

unicode big endian 

ff ff

utf-8  

ef bb bf

這裡其實可以根據前面2個位元組即可判斷!

下面來看看qt原始碼:

filetype.h

#ifndef filetype_h

#define filetype_h

#include #include class filetype

virtual ~filetype()

};class asciifiletype: public filetype

};class utf8filetype: public filetype

};class unifiletype: public filetype

};class uniendfiletype: public filetype

};class filetypefactory

else if(bytearray == "\xff\xfe")

else if(bytearray == "\xfe\xff")

else

return filetype;

}};#endif // filetype_h

下面給出乙個呼叫的**:

void disposefile::transformfile(const qstring &sourcefile)

qbytearray bytearray = file.readall();

//qdebug() << "bytearray:" << qstring::frombytearray;

filetype *filetype = filetypefactory::createfiletypefactory(bytearray.left(2));

gendialog *gendialog = new gendialog(null ,m_currentfilename, filetype->getfiletype());

if(gendialog->exec() == qdialog::accepted)

delete gendialog;

delete filetype;

file.close();

}

如何實現utf8和ascii之間的編碼轉換!

通過qt的qstring中qstring::fromlocal8bit和qstirng::fromutf8即可:

if(head == "ascii")

else

}else

else

}

下一節將給出qt介面設計

檔案編碼轉換工具

1.起因 工作需要 原始碼是utf 8編碼的檔案,載入到vs中後無法編譯,需要轉換成gbk gb2312 編碼格式的檔案 2.實現 使用python簡單的實現了資料夾內遍歷修改檔案編碼格式 import chardet import os def strjudgecode str return ch...

C Winform 檔案編碼批量轉換工具

在發布產品程式包時,往往需要對程式檔案進行編碼檢查,寫了乙個可以批量修改檔案編碼格式的輔助工具,希望對有同樣需求的童鞋有幫助。1.程式介面 2.核心 取得檔案編碼方式 public encoding getfileencode string path 取得檔案編碼方式 private encodin...

檔案格式轉換工具 Pandoc

pandoc是由john macfarlane開發的標記語言轉換工具,可實現不同標記語言間的格式轉換,堪稱該領域中的 瑞士軍刀 pandoc使用haskell語言編寫,以命令列形式實現與使用者的互動,可支援多種作業系統。通俗來說,pandoc是乙個實現檔案格式轉換的工具,比如可以把html檔案轉換為...