青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

colorful

zc qq:1337220912

 

C++ Utf8字符轉(zhuǎn)換Gb312編碼

 
http://cjmxp007.blog.163.com/blog/static/35473837201061541933667/

  1
 #ifndef TRANSFORM
  2 #define TRANSFORM
  3 #include <map>
  4 using namespace std;
  5 // 是否啟用map轉(zhuǎn)換,建議啟用
  6 // 使用map轉(zhuǎn)換的話,同一個(gè)常量字符串不會(huì)做兩次轉(zhuǎn)換
  7 #define TEST_TYPE_MAP
  8 
  9 typedef map<const char*const char*> strmap;
 10 
 11 class CUtf8String
 12 {
 13     public:
 14         inline CUtf8String(const char* gb2312)
 15         {
 16             m_bIsConst = true;
 17 #ifdef TEST_TYPE_MAP
 18             if (m[gb2312])
 19             {
 20                 m_utf8 = m[gb2312];
 21                 return ;
 22             }
 23 #endif
 24             int buffLen = 0;
 25             WCHAR wbuff[5120];
 26             MultiByteToWideChar(CP_ACP, 0, gb2312, -1, wbuff, 5120);
 27             buffLen = WideCharToMultiByte(CP_UTF8, 0, wbuff, -1, NULL, 000);
 28             m_utf8 = new char[buffLen+1];
 29             WideCharToMultiByte(CP_UTF8, 0, wbuff, -1, (LPSTR)m_utf8, buffLen, 00);
 30 #ifdef TEST_TYPE_MAP
 31             m[gb2312] = m_utf8;
 32 #endif
 33         }
 34 
 35         inline CUtf8String(char* gb2312)
 36         {
 37             m_bIsConst = false;
 38             int buffLen = 0;
 39             WCHAR wbuff[5120];
 40             MultiByteToWideChar(CP_ACP, 0, gb2312, -1, wbuff, 5120);
 41             buffLen = WideCharToMultiByte(CP_UTF8, 0, wbuff, -1, NULL, 000);
 42             m_utf8 = new char[buffLen+1];
 43             WideCharToMultiByte(CP_UTF8, 0, wbuff, -1, (LPSTR)m_utf8, buffLen, 00);
 44         }
 45 
 46         inline ~CUtf8String()
 47             {
 48 #ifndef TEST_TYPE_MAP
 49             if (m_utf8)
 50             {
 51                 delete m_utf8;
 52                 m_utf8 = 0;
 53             }
 54 #else
 55             if (!m_bIsConst)
 56                 {
 57                 if (m_utf8)
 58                     {
 59                     delete m_utf8;
 60                     m_utf8 = 0;
 61                     }
 62                 }
 63 #endif
 64             }
 65 
 66         inline operator char*()
 67             {
 68             return (char*)m_utf8;
 69             }
 70     private:
 71         const char* m_utf8;
 72         bool m_bIsConst;
 73 #ifdef TEST_TYPE_MAP
 74         static strmap m;
 75 #endif
 76 };
 77 
 78 class CGb2312String
 79     {
 80     public:
 81         inline CGb2312String(const char* utf8)
 82             {
 83 #ifdef TEST_TYPE_MAP
 84             if (m[utf8])
 85             {
 86                 m_gb2312 = 0;
 87                 m_gb2312 = m[utf8];
 88             }
 89 #endif
 90             int buffLen = 0;
 91             WCHAR wbuff[5120];
 92             MultiByteToWideChar(CP_UTF8, 0, utf8, -1, wbuff, 5120);
 93             buffLen = WideCharToMultiByte(CP_ACP, 0, wbuff, -1, NULL, 000);
 94             m_gb2312 = new char[buffLen+1];
 95             WideCharToMultiByte(CP_ACP, 0, wbuff, -1, (LPSTR)m_gb2312, buffLen, 00);
 96 #ifdef TEST_TYPE_MAP
 97             m[utf8] = m_gb2312;
 98 #endif
 99         }
100 
101         inline CGb2312String(char* utf8)
102         {
103 #ifdef TEST_TYPE_MAP
104             if (m[utf8])
105             {
106                 m_gb2312 = 0;
107                 m_gb2312 = m[utf8];
108             }
109 #endif
110             int buffLen = 0;
111             WCHAR wbuff[5120];
112             MultiByteToWideChar(CP_UTF8, 0, utf8, -1, wbuff, 5120);
113             buffLen = WideCharToMultiByte(CP_ACP, 0, wbuff, -1, NULL, 000);
114             m_gb2312 = new char[buffLen+1];
115             WideCharToMultiByte(CP_ACP, 0, wbuff, -1, (LPSTR)m_gb2312, buffLen, 00);
116 #ifdef TEST_TYPE_MAP
117             m[utf8] = m_gb2312;
118 #endif
119         }
120 
121         inline ~CGb2312String()
122         {
123 #ifndef TEST_TYPE_MAP
124             if (m_gb2312)
125                 {
126                 delete m_gb2312;
127                 m_gb2312 = 0;
128                 }
129 #endif
130         }
131 
132         inline operator char*()
133         {
134             return (char*)m_gb2312;
135         }
136     private:
137         const char* m_gb2312;
138 #ifdef TEST_TYPE_MAP
139         static strmap m;
140 #endif
141 };
142 
143 #ifdef TEST_TYPE_MAP
144 strmap CUtf8String::m;
145 strmap CGb2312String::m;
146 #endif
147 #endif
148 
149 
150 //===================無(wú)聊的分割線==========================
151 
152 #define U   (CUtf8String)
153 
154 #define W   (CGb2312String)
155 
156 // 使用方法
157 int main(int argc, char* argv[])
158 {
159     // 打印出亂碼即為UTF8的編碼,方便吧。C++還是確實(shí)很強(qiáng)悍的
160     printf("%s", U"你好中國(guó)!");
161 }

posted on 2012-07-18 17:24 多彩人生 閱讀(1144) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲综合成人在线| 欧美精品99| 亚洲黄色影片| 猛男gaygay欧美视频| 久久免费视频这里只有精品| 欧美在线观看视频一区二区| 欧美在线日韩精品| 久久精品观看| 欧美激情在线观看| 在线亚洲免费视频| 久久精品99国产精品| 欧美超级免费视 在线| 欧美精品啪啪| 国产精品羞羞答答xxdd| 狠狠狠色丁香婷婷综合久久五月 | 亚洲视频在线免费观看| 欧美一区在线看| 欧美黄色影院| 亚洲私拍自拍| 老巨人导航500精品| 欧美刺激性大交免费视频| 性做久久久久久久久| 久久视频在线看| 欧美日韩亚洲综合在线| 国产一区二区三区不卡在线观看| 在线成人av网站| 亚洲午夜女主播在线直播| 久久久国际精品| 一区二区日韩精品| 久久只有精品| 国产区二精品视| 中文在线一区| 亚洲国产另类精品专区| 午夜亚洲福利| 国产精品福利影院| 亚洲精品欧洲| 免费在线看一区| 午夜视频在线观看一区二区三区| 欧美日韩高清一区| 亚洲欧洲一区二区在线播放| 久久久噜噜噜久久人人看| 一区二区三区欧美激情| 欧美黄色免费网站| 亚洲国产成人在线| 久久这里有精品15一区二区三区| 亚洲一区国产精品| 欧美日韩一区在线观看| 日韩视频免费| 亚洲国产欧美不卡在线观看| 久久久久久午夜| 国产在线不卡| 久久女同互慰一区二区三区| 亚洲视频视频在线| 欧美日韩午夜精品| 亚洲深夜福利网站| 亚洲精品视频二区| 欧美日韩国产一区二区| 亚洲麻豆视频| 91久久夜色精品国产九色| 久久综合99re88久久爱| 在线看欧美日韩| 欧美ed2k| 欧美激情亚洲| 亚洲午夜在线观看| aaa亚洲精品一二三区| 欧美日韩在线一区二区| 亚洲小说春色综合另类电影| 99一区二区| 国产麻豆精品在线观看| 久久精品欧美| 另类春色校园亚洲| 99成人精品| 亚洲素人在线| 国内久久精品| 亚洲黄色成人网| 欧美三级视频在线播放| 亚洲欧美日韩国产成人| 一区二区三区 在线观看视| 国产精品久久久久久久久久妞妞 | 亚洲激情av在线| 亚洲国产精品福利| 欧美国产免费| 亚洲一级二级在线| 欧美一区二区三区婷婷月色| 一区视频在线播放| 亚洲精品一区二区三区福利| 欧美日韩在线第一页| 久久国内精品自在自线400部| 久久国产99| 一本色道久久综合精品竹菊| 亚洲午夜视频在线| 亚洲国产精品久久久久秋霞不卡| 亚洲卡通欧美制服中文| 国产综合久久久久久| 亚洲国产成人久久综合一区| 国产精品久久久久免费a∨| 久久九九精品| 欧美日韩亚洲精品内裤| 久久人人超碰| 国产精品久久久久毛片大屁完整版 | 国产精品videosex极品| 麻豆久久久9性大片| 欧美三级视频在线播放| 免费人成网站在线观看欧美高清| 欧美日韩免费观看中文| 久热精品在线视频| 国产精品午夜电影| 亚洲看片一区| 91久久久久久国产精品| 新片速递亚洲合集欧美合集| 99亚洲伊人久久精品影院红桃| 亚洲女性裸体视频| 一本色道久久综合亚洲91| 久久久久久久性| 欧美与欧洲交xxxx免费观看 | 久久精品2019中文字幕| 欧美日精品一区视频| 欧美夫妇交换俱乐部在线观看| 国产精品一区二区视频 | 老司机久久99久久精品播放免费| 亚洲综合成人在线| 欧美日韩精品免费观看视一区二区| 蜜臀久久99精品久久久久久9 | 欧美日韩成人网| 亚洲国产日韩欧美| 亚洲国产一区二区精品专区| 欧美一区二区三区在线观看视频 | 亚洲欧美日韩国产一区| 欧美日韩大片| 亚洲精品综合| 久久综合伊人| 99国产精品久久久| 欧美sm视频| 亚洲国产视频一区二区| 91久久香蕉国产日韩欧美9色 | 欧美在线不卡| 久久精品卡一| 国内不卡一区二区三区| 欧美一站二站| 免费亚洲视频| 亚洲国产专区| 欧美剧在线观看| 日韩一级免费观看| 午夜精品成人在线| 国产色产综合产在线视频| 欧美在线三级| 美女精品一区| 日韩视频―中文字幕| 欧美区一区二区三区| 日韩一区二区久久| 午夜国产不卡在线观看视频| 国产亚洲成av人片在线观看桃| 亚洲欧美日本伦理| 久久天堂国产精品| 亚洲高清视频一区| 欧美久久在线| 性欧美大战久久久久久久免费观看| 久久精品一本| 亚洲欧洲视频在线| 国产精品毛片| 狂野欧美一区| 一本久久a久久免费精品不卡| 亚洲欧美中日韩| 影音先锋中文字幕一区| 欧美激情女人20p| 亚洲专区国产精品| 欧美大片国产精品| 亚洲香蕉网站| 狠狠色综合网站久久久久久久| 欧美超级免费视 在线| 亚洲一区二区三区中文字幕| 美女爽到呻吟久久久久| 一区二区久久久久| 国产一区二区三区在线观看视频| 欧美gay视频| 亚洲一区二区三区精品在线 | 美女网站久久| 亚洲欧美区自拍先锋| 亚洲福利免费| 国产精品日韩一区| 欧美精品色网| 久久综合给合久久狠狠色| 亚洲视频免费| 欧美国产亚洲另类动漫| 久久aⅴ国产欧美74aaa| 在线天堂一区av电影| 在线免费观看一区二区三区| 欧美视频在线免费看| 欧美成人精品福利| 久久精品免费播放| 亚洲午夜国产一区99re久久| 亚洲国产激情| 乱码第一页成人| 久久电影一区| 亚洲一区二区三区高清| 亚洲久久在线| 亚洲精品乱码久久久久久按摩观| 国产综合激情| 国产亚洲成av人在线观看导航| 国产精品视频网|