目錄
上一節
如何判斷檔案編碼
下一節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檔案轉換為...