VC下fopen如何支援中文

2021-08-24 23:04:59 字數 832 閱讀 2508

**

fopen的第乙個引數是const char*,如何遇到中文檔名就麻煩了,如果中文是utf8,我們可以用下列**將其轉換為unicode,然後用_wfopen函式開啟檔案。

上**:

bool utf8tounicode(const char* utf8, wchar_t* strunicode)

//轉為unicode

multibytetowidechar(cp_utf8,0,utf8,-1,pwtext,dwunicodelen);

//轉為cstring

wcscpy(strunicode, pwtext);

//清除記憶體

delete pwtext;

return true;

}

使用這個函式:

wchar_t strunicode[260];

utf8tounicode(streamname, strunicode);

file* fid = _wfopen(strunicode, l"rb");

// file* fid = fopen(streamname, "rb");//此為原來的方法,遇到中文不能正確開啟

上述函式其實不夠完善,引數strunicode的長度不能靈活設定,有時間再完善。

strunicode

實現fopen支援中文的方法

vc的fopen函式第乙個引數是const char 一旦遇到中文檔名就難以應付了,如果中文是utf8編碼的話,我們還可以用下列 將其轉換為unicode,然後用 wfopen函式開啟檔案。如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 b...

putty如何支援中文

對於經常在windows下遠端ssh到linux的使用者而言,putty可能是你最好的選擇。可是預設情況下,putty對中文的支援卻讓人不敢恭維,如果遠端linux的locale設定為zh cn.bg2312,gbk,utf8等等 顯示就是亂碼。經研究發現,其實putty的中文支援還是很好的,呵呵 ...

解決xshell下vim支援中文

開啟 vimrc檔案從到最後新增如下內容,如果沒有該檔案則在家目錄下建立該檔案。set fileencodings utf 8,ucs bom,gb18030,gbk,gb2312,cp936 set termencoding utf 8 set encoding utf 8 如果新增如下內容後,在...