<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      數據庫編碼為utf8,但是由于某些表的一些字段存儲了emoji字符,表采用了utf8mb4編碼,默認情況下在C++代碼中讀出的中文字段值都變成了亂碼。

      解決方法為,在進行數據庫查詢前,在C++中執行一下“set names utf8”,例如在我的程序里執行下面的語句即可:

      //不加這句話,中文亂碼
      mDS->executeNonQuery("set names utf8");

      讀出數據后,將字符轉為本地編碼即可,如GB2312,下面的函數實現將utf8編碼的字符轉為gbk編碼: 

      //UTF_8 轉gb2312
      void  UTF_8ToGB2312(string &pOut, char *pText, int pLen)
      {
          char buf[4];
          char* rst = new char[pLen + (pLen >> 2) + 2];
          memset(buf,0,4);
          memset(rst,0,pLen + (pLen >> 2) + 2);
      
          int i =0;
          int j = 0;
           
          while(i < pLen)
          {
              if(*(pText + i) >= 0)
              {
                 
                  rst[j++] = pText[i++];
              }
              else                
              {
                  WCHAR Wtemp;
      
                 
                  UTF_8ToUnicode(&Wtemp,pText + i);
                   
                  UnicodeToGB2312(buf,Wtemp);
                 
                  unsigned short int tmp = 0;
                  tmp = rst[j] = buf[0];
                  tmp = rst[j+1] = buf[1];
                  tmp = rst[j+2] = buf[2];
      
                  //newBuf[j] = Ctemp[0];
                  //newBuf[j + 1] = Ctemp[1];
      
                  i += 3;   
                  j += 2;  
              }
             
          }
          rst[j]='\0';
          pOut = rst;
          delete []rst;
      }

       

      void UnicodeToGB2312(char* pOut,WCHAR uData)
      {
          WideCharToMultiByte(CP_ACP,NULL,&uData,1,pOut,sizeof(WCHAR),NULL,NULL);
          return;
      }

       

      void UTF_8ToUnicode(WCHAR* pOut,char *pText)
      {
          char* uchar = (char *)pOut;
          
          uchar[1] = ((pText[0] & 0x0F) << 4) + ((pText[1] >> 2) & 0x0F);
          uchar[0] = ((pText[1] & 0x03) << 6) + (pText[2] & 0x3F);
      
          return;
      }

      讀出數據后,要使用GDAL將數據寫出到shp文件,同樣也遇到了中文亂碼問題。參照此處的文章,順利解決,感謝原作者的分享。

      posted on 2016-04-22 18:58  yeahgis  閱讀(3664)  評論(1)    收藏  舉報

      主站蜘蛛池模板: 日本高清久久一区二区三区| 欧洲精品色在线观看| 亚洲无人区码二码三码区| 亚洲一区二区三区自拍偷拍| A级毛片无码久久精品免费| 桂阳县| 国产精品视频午夜福利| 国产仑乱无码内谢| 无码人妻一区二区三区线| 国产 浪潮av性色四虎| 国产精品小仙女自拍视频| 最新永久免费AV无码网站| 国产精品中文字幕久久| 欧美激情内射喷水高潮| 日本一道一区二区视频| 国产成人综合在线观看不卡 | 偷拍一区二区三区在线视频| 377P欧洲日本亚洲大胆| 欧美深度肠交惨叫| 久久国内精品自在自线91| 国产亚洲精品第一综合另类| 国产国语一级毛片| 一区二区三区四区亚洲综合| 看全黄大色黄大片视频| 午夜成人性爽爽免费视频| 国产精品户外野外| 国产成人午夜福利在线小电影| 久久精品国产亚洲av天海翼| 男人的天堂va在线无码| 精品精品亚洲高清a毛片| 国产一区二区不卡视频在线| 亚洲国产色播AV在线| 亚洲综合区激情国产精品| 97精品亚成在人线免视频| 男女动态无遮挡动态图| 动漫AV纯肉无码AV电影网| 建始县| 中文熟妇人妻av在线| 18禁免费无码无遮挡不卡网站| 国产精品亚洲mnbav网站| 中文字幕精品亚洲二区|