WriteFile寫檔案亂碼問題

2021-06-06 02:58:27 字數 1612 閱讀 7370

1. 寫入的時候採用多位元組char型別

handle hfile;

dword nbytes;

hfile=createfile(_t"test.txt"),generic_write,file_share_write,null,create_always,0,null);

char msg="以沃爾沃餓哦家人哦額無人機";

if(hfile!=invalid_handle_value)

2. 直接寫入unicode的頭位元組

handle hfile;

dword nbytes;

hfile=createfile(_t("test.out"),generic_write,file_share_write,null,create_always,0,null);

wchar msg=l"倫敦**立刻加拉斯**iejo房間裡多少級啊法律解決我";

if(hfile!=invalid_handle_value)

3. 使用widechartomultibyte轉換成多位元組

寬窄字元轉化

int a = widechartomultibyte(cp_acp, null, sztext, -1, lpstr(sztextansi), max_path, null, false);//unicode轉換為ansi,a的值包括了字串最後的0

if (writefile(hfile, sztextansi,a-1, &dwbyteswrite, null))//寫入的時候最後的0不用寫入所以要用a-1

else

4. 使用wcstombs轉換成多位元組,需要引用wchar.h和locale.h

handle hfile;

dword nbytes;

hfile=createfile(_t("test.out"),generic_write,file_share_write,null,create_always,0,null);

wchar msg=l"法律空間啊快點放假的就佛iejofijeiawjfajfejifio";

if(hfile!=invalid_handle_value)

char buf[sizeof(msg)];

setlocale(lc_all, ".936");

wcstombs(buf, msg, sizeof(msg));

writefile(hfile,buf, sizeof(buf),&nbytes,null);

closehandle(hfile);

//*********以下為讀入***********************//

hfile=createfile(_t("test.txt"),generic_read,file_share_read,null,open_always,0,null);

if(hfile!=invalid_handle_value);

bool bresult;

bresult=readfile(hfile,line,sizeof(line),&nbytes,null);

if(nbytes!=0)

printf("%s\r\n",line);

closehandle(hfile);

java propertes 檔案讀取亂碼問題

方法1 使用native2ascii 把中文轉化為 ascii碼,這樣讀取的使用不會亂碼。這種方式不推薦。方式2properties prop new properties prop.load is 關鍵是第二行 這裡如果你傳的是 inputstream is test.class.getresou...

WriteFile寫中文字串 TxT顯示亂碼

1 在寫入前插入0xfeff,讓系統認為是unicode編碼。注意,寫入後用十六進製制編輯器檢視高低位是互換的 unicode 0xfeff utf8 0xefbbbf 這是一種解決亂碼的方法,在前面寫入0xfeff,以unicode方式開啟 word a 0xfeff 寫入0xfeff讓記事本以u...

win7 writefile寫磁碟失敗解決

情況 1 正要寫入的扇區不位於卷內 空隙塊與分割槽表 注意 程式使用卷之外的扇區來儲存元資料。分割槽表也位於卷之外的扇區中。由於這些扇區不受任何檔案系 統的控制,因此沒有理由阻止對這些扇區的訪問。情況 2 已經通過鎖定請求或解除安裝請求顯式鎖定卷 情況 3 正要寫入的扇區位於未安裝或者無檔案系統的卷...