訪問密碼 528c
關鍵**如下:
一、獲取路徑中的指定檔案型別的檔案
void cencoddlg::findinall(lpctstr lpszpath)
; cfilefind finder;
cstring strpath(lpszpath);
strpath += _t("\\*.*");
bool bexist = finder.findfile(strpath);
while (bexist)
cstring fpath = finder.getfilepath();
cstring ext = fpath.right(fpath.getlength() - fpath.reversefind('.') - 1);
auto inarray = (cstring ext,vectorvc)
}return false;
};if (!vc.empty() && !inarray(ext, vc))
m_files.push_back(fpath);
}}
二、獲取指定目錄下的檔案
void cencoddlg::onbnclickedselectdir()
三、獲取指定檔案
void cencoddlg::onbnclickedselectfile()
; cfiledialog dlgfile(true, null, null, ofn_hidereadonly, type + _t("所有檔案 (*.*)|*.*||"), null);
openfilename& ofn = dlgfile.getofn();
ofn.flags |= ofn_allowmultiselect;
if (dlgfile.domodal())
} showallfiles();
}
四、把所有檔案路徑顯示在左側
void cencoddlg::showallfiles()
lc->detach();
}
五、根據編碼轉化檔案
void cencoddlg::onbnclickedok()
if (m_fromencod.getcursel() != m_toencod.getcursel())
uint nfilelen = 0;
strcoding * cod = new strcoding;
for (auto e : m_files)
istreambuf_iteratorbeg(in), end;
string str_in(beg,end);
string str_out;
if (m_fromencod.getcursel() == 1)
else
in.close();
ofstream out;
out.open(e.getbuffer());
if (!out.is_open())
out << str_out << endl;
out.close();
} setdlgitemtext(idc_status, _t("轉換完畢"));
delete cod;
}
六、編碼轉換類
//這是個類strcoding (strcoding.h檔案)
#pragma once
#include #include #include using namespace std;
class strcoding
;
//這是個類strcoding (strcoding.cpp檔案)
#include "stdafx.h"
#include "strcoding.h"
strcoding::strcoding(void)
strcoding::~strcoding(void)
void strcoding::gb2312tounicode(wchar* pout, char *gbbuffer)
void strcoding::utf_8tounicode(wchar* pout, char *ptext)
void strcoding::unicodetoutf_8(char* pout, wchar* ptext)
void strcoding::unicodetogb2312(char* pout, wchar udata)
//做為解url使用
char strcoding::chartoint(char ch)
char strcoding::strtobin(char *str)
//utf_8 轉gb2312
void strcoding::utf_8togb2312(string &pout, char *ptext, int plen)
else
}rst[j] = '\0';
pout = rst;
deleterst;
}//gb2312 轉為 utf-8
void strcoding::gb2312toutf_8(string& pout, char *ptext, int plen)
; asciistr[0] = (ptext[i++]);
} else
}return;
}//把str編碼為網頁中的 gb2312 url encode ,英文不變,漢字雙位元組 如%3d%ae%88
string strcoding::urlgb2312(char * str)
else if (isspace((byte)str[i]))
else
}return dd;
}//把str編碼為網頁中的 utf-8 url encode ,英文不變,漢字三位元組 如%3d%ae%88
string strcoding::urlutf8(char * str)
; sprintf_s(tempbuff,sizeof(tempbuff), "%c", (byte)tt.at(i));
} else if (isspace((byte)tt.at(i)))
else
}return dd;
}//把url gb2312解碼
string strcoding::urlgb2312decode(string str)
else if (str[i] == '+')
else
} return output;
}//把url utf8解碼
string strcoding::urlutf8decode(string str)
UTF8檔案讀寫
2009 04 07 12 00 56 分類 預設分類 舉報 字型大小訂閱 基本方法 使用vs2005提供的功能讀utf 8文字檔案,並將內容轉存在以unicode儲存的記憶體空間 如果需要寫出則使用二進位制方式開啟檔案,使用windows api函式widechartomultibyte轉換好後再...
Windows下列印utf 8檔案
估計入門時都會遇到的。我是在windows下用的python25自帶的idle編輯執行的,發現執行指令碼得出的結果有一些中文顯示是亂碼,但有一些是 正常的。百思不得其解。首先檢視了一下原始檔的編碼格式,是utf 8。經過搜尋再搜尋,除錯再除錯,也換了幾個編譯器,發現比idle還糟糕 可能需要 進行e...
去除 UTF 8 檔案 BOM 頭
bom 全稱是 byte order mark 位元組順序標記 出現在文字檔案頭部,unicode 編碼標準中用於標識檔案是採用哪種格式的編碼。比如 當用記事本儲存乙個以 utf 8 編碼的檔案時,會自動在檔案開始自動插入三個不可見字元 0xef 0xbb 0xbf 但是通常情況下不需要這個頭部來識...