1. 程式人生 > >Utf-8編碼處理(解決c++/MFC下的亂碼問題)

Utf-8編碼處理(解決c++/MFC下的亂碼問題)

標頭檔案引用:#include <string>
 void CGetpostDlg::UTF8toANSI(CString &strUTF8)
{
	USES_CONVERSION;
	char * strutf8 = W2A(strUTF8);
	//獲取轉換為多位元組後需要的緩衝區大小,建立多位元組緩衝區
	UINT nLen = MultiByteToWideChar(CP_UTF8, NULL, strutf8, -1, NULL, NULL);
	WCHAR *wszBuffer = new WCHAR[nLen + 1];
	nLen = MultiByteToWideChar(CP_UTF8, NULL, strutf8, -1, wszBuffer, nLen);
	wszBuffer[nLen] = 0;

	nLen = WideCharToMultiByte(936, NULL, wszBuffer, -1, NULL, NULL, NULL, NULL);
	CHAR *szBuffer = new CHAR[nLen + 1];
	nLen = WideCharToMultiByte(936, NULL, wszBuffer, -1, szBuffer, nLen, NULL, NULL);
	szBuffer[nLen] = 0;
	string szbuffer = szBuffer;
	strUTF8 = szbuffer.c_str();
	//清理記憶體
	delete[]szBuffer;
	delete[]wszBuffer;
}
void CGetpostDlg::ANSItoUTF8(CString &strAnsi)
{
	USES_CONVERSION;
	char * stransi = W2A(strAnsi);
	//獲取轉換為寬位元組後需要的緩衝區大小,建立寬位元組緩衝區,936為簡體中文GB2312內碼表
	UINT nLen = MultiByteToWideChar(936, NULL, stransi, -1, NULL, NULL);
	WCHAR *wszBuffer = new WCHAR[nLen + 1];
	nLen = MultiByteToWideChar(936, NULL, stransi, -1, wszBuffer, nLen);
	wszBuffer[nLen] = 0;
	//獲取轉為UTF8多位元組後需要的緩衝區大小,建立多位元組緩衝區
	nLen = WideCharToMultiByte(CP_UTF8, NULL, wszBuffer, -1, NULL, NULL, NULL, NULL);
	CHAR *szBuffer = new CHAR[nLen + 1];
	nLen = WideCharToMultiByte(CP_UTF8, NULL, wszBuffer, -1, szBuffer, nLen, NULL, NULL);
	szBuffer[nLen] = 0;
	string szbuffer = szBuffer;
	strAnsi = szbuffer.c_str();
	//記憶體清理
	delete[]wszBuffer;
	delete[]szBuffer;
}

相關推薦

Utf-8編碼處理(解決c++/MFC亂碼問題)

標頭檔案引用:#include <string> void CGetpostDlg::UTF8toANSI(CString &strUTF8) { USES_CONVERSION; char * strutf8 = W2A(strUTF8); //

php 多語言(UTF-8編碼)導出Excel、CSV亂碼解決辦法之導出UTF-8編碼的Excel、CSV

csv tex 完整 多語 繁體 HP 項目 .html agen 轉自: https://www.cnblogs.com/kclteam/p/5278926.html 新項目,大概情況是這樣的:可能存在多國、不同語種使用者,比喻有中文、繁體中文,韓文、日本等等,開發

異常 Invalid byte 3 of 3-byte UTF-8 sequence 處理解決

異常: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [/usr/local/AppStoreServe

【okhttp】Post請求設定utf-8編碼解決漢語請求亂碼問題)

 如果用FormBody 傳送post表單請求,就不能設定編碼格式,contentType方法沒有暴露出來,預設也不是UTF-8,引數是漢字就會亂碼。 所以換一種方式 ,用   RequestBody

解決excel打開utf-8編碼csv文件亂碼的bug

導入 對話框 原因 識別 直接 格式 excel exce 編碼 直接用 excel 打開 utf-8 編碼的 csv 文件會導致漢字部分出現亂碼。原因是 excel 以 ansi 格式打開,不會做編碼識別。 打開 utf-8 編碼的 csv 文件的方法: 1) 打開

windowspython3.6 通過pip安裝Twisted模塊報utf-8錯誤的解決辦法

報錯 tps www div gpo scrapy href cnblogs win 1.去這個網站 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 2.下載Twisted?17.9.0?cp36?cp36m?win32.whl或Tw

C# MD5 32位加密 UTF-8編碼

spl 十六進制 post ring one 類型 開始 出現問題 int 項目開發過程中需要用到MD5加密,最開始的使用使用加密方法: public static string GetMD5(string str) { byte[] b = System

UTF-8編碼'u7528u6237'轉換為中文漢字'用戶'

bsp 16px -a 設置圖 進行 開發 ngs color tin UTF-8編碼下‘\u7528\u6237‘轉換為中文‘用戶‘ 一、前言 有過多次,在開發項目中遇見設置文件編碼格式為UTF-8,但是打開該文件出現類似\u7528這樣的數據,看也看不懂,也不是

linux URL中 UTF-8編碼、GB2312編碼與漢字之間的轉換

下面是UTF-8編碼的轉換程式碼 #include <string.h> #include <stdio.h> #include <stdlib.h> /* 16進位制字元表 */ static const char c2x_table[] = "0

emWin - 俄語UTF-8編碼亂碼問題(已解決

原文連結:emWin - 俄語UTF-8編碼亂碼問題(已解決) 目錄 第一步: 第二步: 後續故事: 使用的是STM32微控制器,用的是emWin的庫,編碼工具是U2C(UTF-8 To C檔案)。 最近在搞一個專案,液晶屏要顯示九種語言、種語言、語言、言言言!

xml中1位元組的UTF-8序列的位元組1無效([字元編碼]Invalid byte 1 of 1-byte UTF-8 sequence終極解決方案)

  xml中1位元組的UTF-8序列的位元組1無效([字元編碼]Invalid byte 1 of 1-byte UTF-8 sequence終極解決方案) 專案本地執行是ok的,但是釋出到線上伺服器就一直報錯,說什麼   Error

MySQL修改編碼UTF-8無效果解決辦法

本來這是一件很簡單的事,有很多部落格裡都有教程,但卻足足花了我半天的時間才解決問題。 可能是因為我的MySQL安裝時沒有選擇預設路徑的原因,按照網上的教程修改了下圖中的my.ini配置檔案後編碼並沒有發生變化。 來回試了好幾次都不行,重啟了服務N次..... [mysqld] characte

log4cplus:如何在windows使用log4cplus以UTF-8編碼輸出中文

       如果Visual C++中字符集設定的是Unicode,如果想使用GBK格式讓log4cplus輸出中文,可以在log4cplus.properties配置檔案中設定Local屬性,例如: log4cplus.appender.ALL_MSGS.Append

JAVA以UTF-8編碼格式匯出CSV檔案,用office開啟產生亂碼解決方法

一般java匯出為csv檔案程式碼如下 OutputStreamWriter osw = new OutputStreamWriter(resp.getOutputStream

ubuntu16.04mysql5.7支援utf-8編碼格式配置檔案修改步驟

1,開啟終端 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 在檔案的  [mysqld]  #  # * Basic Settings  #  user  

Eclipsejava專案的GBK編碼程式碼檔案轉換為UTF-8編碼的實現程式碼

String srcDirPath = "D:\\work\\SVN\\Service";   String utf8DirPath = "D:\\work\\SVN\\Service2";          Collection<File> javaGbkFil

解決JAVA中maven工程中 UTF-8編碼出現不可對映編碼問題

根據普遍網上的通用的做法是在maven工程中加入如下程式碼。或者修改系統的預設的編碼字型。如下圖所示: 修改mavaen的pom檔案的程式碼如下,只需要修改utf-8即可改變maven工程的編譯的過程中的編碼 <plugin> <grou

解決 Excel 開啟 UTF-8 編碼 CSV 檔案亂碼的 BUG

亂碼恢復 http://www.mytju.com/classcode/tools/messycoderecover.asp   直接用 Excel 開啟 UTF-8 編碼的 CSV 檔案會導致漢字部分出現亂碼。 原因是 Excel 以 ANSI 格式開啟,不會做編碼識別。 開啟 UTF-

解決 Excel 打開 UTF-8 編碼 CSV 文件亂碼的 BUG

href 編碼 亂碼 coder 原因 ESS targe bug 方法 亂碼恢復 http://www.mytju.com/classcode/tools/messycoderecover.asp 直接用 Excel 打開 UTF-8 編碼的 CSV 文件會導致

Asp.net utf-8 編碼中文亂碼完全解決方案

 Unicode 編碼正逐漸成為多語言支援的最通用解決方案。採用 Unicode 編碼的中文網頁能在各種平臺、各種類的瀏覽器上都得到很好的相容。utf-8 是 Unicode 的一種儲存/交換實現方式。對於不同數值範圍的 Unicode 碼,它採用變長的方式來編碼:所有