從vs軟件中復(fù)制中文的時(shí)候是亂碼,也不知道怎么解決,小編帶來的就是VS粘貼word時(shí)中文亂碼修復(fù)工具,可以很好的解決這個(gè)問題,需要的朋友快來下載吧。
修復(fù)vs復(fù)制亂碼問題
VS粘貼word時(shí)中文亂碼修復(fù)工具功能介紹
部分VS版本復(fù)制代碼到word時(shí), 中文注釋變成亂碼.就做了個(gè)小工具實(shí)時(shí)修復(fù) ,
以前在網(wǎng)上也下載過類似工具, 但每次都要點(diǎn)一下,很麻煩,
本工具可自動(dòng)監(jiān)控剪切板, 自動(dòng)修復(fù), 可謂全自動(dòng)了.
使用方法
下載后直接點(diǎn)擊開始監(jiān)控
不需要時(shí)點(diǎn)擊停止
vs2010上中文顯示亂碼問題
常見的字符編碼有:
1.ASCII碼是單字節(jié)編碼,編碼范圍是0x00-0x7F(最高位保持為0)。ASCII字符集包括英文字母、阿拉伯?dāng)?shù)字和標(biāo)點(diǎn)符號(hào)等字符。其中0x00-0x20和0x7F共33個(gè)控制字符,只支持ASCII碼的系統(tǒng)會(huì)忽略每個(gè)字節(jié)的最高位,只認(rèn)為低7位是有效位。
2.GB2312 是對(duì) ASCII 的中文擴(kuò)展,正式的名稱為MBCS(Multi-Byte Chactacter System,多字節(jié)字符系統(tǒng))按照程序員的稱呼,GB2312、GBK到GB18030都屬于雙字節(jié)字符集 (DBCS)。
規(guī)定:一個(gè)小于127的字符的意義與原來相同,但兩個(gè)大于127的字符連在一起時(shí),就表示一個(gè)漢字,前面的一個(gè)字節(jié)(他稱之為高字節(jié))從0xA1用到 0xF7,后面一個(gè)字節(jié)(低字節(jié))從0xA1到0xFE,這樣我們就可以組合出大約7000多個(gè)簡體漢字了
3.Unicode,unicode是全世界統(tǒng)一的編碼規(guī)則,但是這個(gè)只規(guī)定了各種字符的數(shù)字編碼(相當(dāng)于一種標(biāo)準(zhǔn)),具體實(shí)現(xiàn)的存儲(chǔ)方式有utff-8,utf-16,utf-32等形式。各種形式有不同的存儲(chǔ)和與unicode代碼的映射規(guī)則。
現(xiàn)在大部分具有國際化特征的軟件核心字符處理都是以Unicode 為基礎(chǔ)的,在軟件運(yùn)行時(shí)根據(jù)當(dāng)時(shí)的Locale/Lang/Codepage 設(shè)置確定相應(yīng)的本地字符編碼設(shè)置,并依此處理本地字符。在處理過程中需要實(shí)現(xiàn)Unicode 和本地字符集的相互轉(zhuǎn)換,甚或以Unicode 為中間的兩個(gè)不同本地字符集的相互轉(zhuǎn)換。這種方式在網(wǎng)絡(luò)環(huán)境下被進(jìn)一步延伸,任何網(wǎng)絡(luò)兩端的字符信息也需要根據(jù)字符集的設(shè)置轉(zhuǎn)換成可接受的內(nèi)容。
通常android手機(jī)和ipone手機(jī)上顯示中文采用的編碼是Unicode(UTF-8 帶簽名)
所以要想中文字體在手機(jī)上面顯示需要把字符設(shè)置成Unicode(UTF-8 帶簽名),方法如下(vs2010):
1.選中字符所在的文件,
2,選擇“文件”菜單
3.選擇“高級(jí)保存選項(xiàng)” ,然后可以設(shè)置該文件的字符編碼了。
如果把字符編碼設(shè)置成 Unicode(UTF-8 帶簽名),那么在vs2010中運(yùn)行游戲,發(fā)現(xiàn)中文顯示亂碼了
為什么?那是因?yàn)関s2010用的編碼方式是GB2321,這時(shí)我們需要把Unicode編碼轉(zhuǎn)換成為GB2312編碼
怎么呢,首先:定義wstring或者wchar_t,比如:static const wstring W_GAMEOVER_TITLE = L"數(shù)據(jù)統(tǒng)計(jì)";
static const wchar_t* W_KILL_LABEL = L"本局殺死敵人數(shù): %d人";
注意:wchar_t類型主要用在國際化程序的實(shí)現(xiàn)中,但它不等同于unicode編碼。unicode編碼的字符一般以wchar_t類型存儲(chǔ)。
void ConvertGBKToUtf8(CString& strGBK) {
int len=MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strGBK, -1, NULL,0);
unsigned short * wszUtf8 = new unsigned short[len+1];
memset(wszUtf8, 0, len * 2 + 2);
MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strGBK, -1, wszUtf8, len);
len = WideCharToMultiByte(CP_UTF8, 0, wszUtf8, -1, NULL, 0, NULL, NULL);
char *szUtf8=new char[len + 1];
memset(szUtf8, 0, len + 1);
WideCharToMultiByte (CP_UTF8, 0, wszUtf8, -1, szUtf8, len, NULL,NULL);
strGBK = szUtf8;
delete[] szUtf8;
delete[] wszUtf8;
}
void ConvertUtf8ToGBK(CString& strUtf8) {
int len=MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, NULL,0);
unsigned short * wszGBK = new unsigned short[len+1];
memset(wszGBK, 0, len * 2 + 2);
MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, wszGBK, len);
len = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
char *szGBK=new char[len + 1];
memset(szGBK, 0, len + 1);
WideCharToMultiByte (CP_ACP, 0, wszGBK, -1, szGBK, len, NULL,NULL);
strUtf8 = szGBK;
delete[] szGBK;
delete[] wszGBK;
}
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版