1
如果我輸入一個UTF-8編碼的文件一樣,_wsopen_s帶有_O_U8TEXT標誌,返回0緩衝區,中間字符和4個俄語字符之間。 VS2010
example.html的
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<title>Текст на русском</title>
其中 「Текстнарусском」 - 是俄羅斯
#include <string>
#include <ios>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
using namespace std;
int main()
{
int fl; unsigned int nbytes = 60000,bspr; char buf [60000];
errno_t err = _wsopen_s(&fl,L"c:\\example.html", _O_U8TEXT,_SH_DENYNO,_S_IREAD | _S_IWRITE); // &fh,"c:\\example.html",_O_RDONLY,
if (err!=0) exit (1);
if ((bspr = _read(fl,buf,nbytes))<=0)
{
perror (" Error opening file ");
exit (1);
}
}
我得到BUF文本[ 0] = 60'<',buf [1] = 0,buf [2] = 104'h',buf [3] = 0等
直到我達到俄文字母,符號l IKE 20「」每個其次是4',
「字符」 - 這是人物的vstudio輸出.. 20和4
奇怪的是相同的,所以,問題是 - 有什麼辦法,我可以得到輸出緩衝區到一個字符串,直到EOF,格式正確,即使不使用這個運算符?
謝謝,這就是我一直在尋找的 – cynicalanlz 2011-05-22 19:53:48