c++ unicode转gbk注意事项,不实践,你永远不知道坑在哪里

unicode转gbk注意事项:

    整 标记(){
        静 正短 x0{0xfffe},x1{0xfeff};2();正短 a=c<<8|d;(a==x0)0;(a==x1)1;2;
    }//fffe为小头.feff为大头.要用正短
    函数<正短()>读大头=[&](){//读两位,1位位读2();正短 p=c<<8|d;中 p;
    };//fffe为小头,小头,小的在后,大的在前
    //函数,要写全,类中不能直接一个动字.不得行
    空 一位(){
        符 e=()j;(e=='\r');+=e;
    }//去掉0d,要去掉0d,不然满屏的^M.

最重要的来了:

    空 取2(){c=();();d=();();}
//这里的c和d必须是

c和d必须是 正 符否则成为阴阳脸.够你受的.
再一个注意:

        整 d=型长(a)*2,m=15,n,k;b(d,'\0');
        //上面串为d长是重点,这里必须是d长,不能为d+1长,否则,又是折腾人.

怎样发现上面的毛病呢?
因为老是多了一个^@,^@就是一个0的表示,代表,这里多了.
阴阳险,主要就是发现了前面的都是FF前缀.这时估计可能就是符搞成负的了.结果它乱搞,没得事就搞成FF..,FF..
又有一个你必须要知道的超级大坑,unicode文件,必须用二进制模式打开,否则打开不全.切记切记!
写一个程序,就会遇到无数个坑.简直成了坑神!

你可能感兴趣的:(unicode,gbk,c++,cpp)