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

colorful

zc qq:1337220912

 

C++ Utf8字符轉換Gb312編碼

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

  1
 #ifndef TRANSFORM
  2 #define TRANSFORM
  3 #include <map>
  4 using namespace std;
  5 // 是否啟用map轉換,建議啟用
  6 // 使用map轉換的話,同一個常量字符串不會做兩次轉換
  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 //===================無聊的分割線==========================
151 
152 #define U   (CUtf8String)
153 
154 #define W   (CGb2312String)
155 
156 // 使用方法
157 int main(int argc, char* argv[])
158 {
159     // 打印出亂碼即為UTF8的編碼,方便吧。C++還是確實很強悍的
160     printf("%s", U"你好中國!");
161 }

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

導航

統計

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲午夜免费福利视频| 日韩午夜av电影| 91久久线看在观草草青青| 国产精品视频久久久| 国产片一区二区| 欧美高清在线播放| 国产精品久久久久久久久久久久 | 国产一区二区三区免费观看| 麻豆久久婷婷| 亚洲欧美日韩一区在线观看| 久久亚洲精品中文字幕冲田杏梨| 亚洲激情校园春色| 香蕉国产精品偷在线观看不卡| 欧美精品一区二区三| 在线看一区二区| 性刺激综合网| 亚洲精选中文字幕| 亚洲精品一区在线观看| 欧美区在线播放| 亚洲一区二区影院| 中文欧美字幕免费| 国产精品久久久久久久第一福利| 亚洲欧美中日韩| 久久精品国产亚洲一区二区| 日韩午夜激情电影| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 欧美日韩精品在线播放| 欧美日韩黄色一区二区| 国产精品捆绑调教| 久久久精品免费视频| 樱桃国产成人精品视频| 女人香蕉久久**毛片精品| 亚洲国产成人久久综合| 亚洲另类黄色| 国产精品一区在线观看| 欧美在线观看你懂的| 欧美激情精品久久久六区热门 | 欧美日韩一区二区三区| 在线综合亚洲欧美在线视频| 欧美一区影院| 日韩午夜在线播放| 欧美在线二区| 欧美在线视频网站| 欧美午夜不卡| 欧美高清视频www夜色资源网| 国产精品一区三区| 欧美激情精品久久久久久蜜臀| 激情久久久久久久| 久久嫩草精品久久久精品| 蜜臀久久99精品久久久画质超高清 | 蜜臀久久99精品久久久画质超高清| 一区二区三区日韩在线观看| 宅男噜噜噜66一区二区66| 久久亚裔精品欧美| 欧美日韩精品在线视频| 亚洲精品国产欧美| 久久久亚洲国产天美传媒修理工| 亚洲免费电影在线观看| 久久精品99国产精品| 日韩午夜av| 一区二区三区福利| 亚洲精选中文字幕| 国产精品99久久久久久www| 亚洲精品综合| 日韩亚洲欧美综合| 亚洲人成亚洲人成在线观看图片| 亚洲精品欧洲精品| 亚洲乱码国产乱码精品精可以看 | 久久aⅴ国产紧身牛仔裤| 篠田优中文在线播放第一区| 欧美一区二区三区在线免费观看| 久久av二区| 欧美ab在线视频| 亚洲激情av| aa亚洲婷婷| 欧美一区二区三区啪啪| 久久国产99| 欧美国产精品劲爆| 国产精品毛片在线| 国产一区二区精品在线观看| 亚洲成人在线视频网站| 亚洲人成网站精品片在线观看 | 小嫩嫩精品导航| 亚洲视频在线观看三级| 久久精品国产亚洲精品| 欧美一区二区视频97| 免费在线亚洲欧美| 玖玖玖国产精品| 欧美亚洲综合另类| 亚洲精品一二| 亚洲人成在线播放网站岛国| 国产精品99久久久久久久vr| 亚洲欧美综合精品久久成人| 老司机精品导航| 亚洲国产精品成人综合| 亚洲一区二区在线播放| 夜夜嗨一区二区| 欧美三区不卡| 国产精品久久久久久久久久ktv| 国产精品高潮呻吟久久av黑人| 在线看片成人| 欧美国产亚洲视频| 久久综合综合久久综合| 一区二区免费在线视频| 欧美丰满高潮xxxx喷水动漫| 在线观看亚洲视频啊啊啊啊| 欧美一区二区日韩| 欧美一区二区三区视频| 国产亚洲综合性久久久影院| 亚洲一区二区精品在线| 亚洲最新中文字幕| 亚洲人成网在线播放| 亚洲免费高清视频| 9i看片成人免费高清| 亚洲在线视频| 久久久久久久久一区二区| 亚洲已满18点击进入久久| 亚洲精品自在在线观看| 久久高清福利视频| 巨乳诱惑日韩免费av| 久久久欧美精品| 欧美日本亚洲| 国产视频亚洲| 国产精品嫩草99a| 亚洲国产精品久久久久| 亚洲一区区二区| 欧美伊人久久大香线蕉综合69| 可以看av的网站久久看| 亚洲国产精品黑人久久久 | 亚洲精品美女91| 亚洲女性裸体视频| 另类专区欧美制服同性| 99天天综合性| 欧美午夜精品| 国产精品美女久久久久久2018| 国产精品人成在线观看免费 | 亚洲一区二区成人| 欧美色网在线| 欧美国产亚洲精品久久久8v| 伊人久久婷婷色综合98网| 亚洲网在线观看| 美日韩免费视频| 久久躁日日躁aaaaxxxx| 国产精品一区二区三区久久久| 欧美亚洲一区| 亚洲视频视频在线| 久久精品国产亚洲aⅴ| 国产午夜精品久久久久久久| 亚洲亚洲精品在线观看| 国产精品99久久久久久久vr| 欧美日韩成人网| 亚洲欧美日韩区| 亚洲一区二区三区四区五区黄| 欧美日韩三级在线| 亚洲男人的天堂在线观看| 亚洲精选中文字幕| 国产麻豆精品视频| 欧美亚洲日本网站| 亚洲国产电影| 欧美日韩xxxxx| 亚洲在线视频| 久久久久久电影| 亚洲国产成人av| 在线综合亚洲欧美在线视频| 国产精品久久久久久久久久ktv| 久久久久久夜| 久久免费高清| 亚洲精品视频在线播放| 国产色综合久久| 欧美国产激情| 美女精品在线观看| 亚洲主播在线播放| 午夜亚洲福利在线老司机| 亚洲欧洲精品一区二区三区波多野1战4 | 欧美在线不卡| 国内精品视频在线观看| 亚洲欧美日韩天堂一区二区| 欧美成人国产| 蜜桃久久精品乱码一区二区| 亚洲图片自拍偷拍| 亚洲精品一品区二品区三品区| 国产视频精品网| 国产精品日韩二区| 国产精品magnet| 国产精品免费在线| 欧美午夜不卡在线观看免费 | 久久天天躁狠狠躁夜夜爽蜜月| 亚洲大胆女人| 亚洲一区二区三区欧美| 国产精品美女主播在线观看纯欲| 欧美日本免费| 久久超碰97中文字幕| 米奇777超碰欧美日韩亚洲| 日韩一级不卡| 久久久久国产精品人| 亚洲一区二区动漫| 欧美精品偷拍| 久久综合99re88久久爱| 久久精品国产综合精品| 亚洲精品一区二区三区蜜桃久|