Sfoglia il codice sorgente

Z991239-5165 #comment 身份证源码编码UTF8改动

80374374 1 anno fa
parent
commit
4bb09fba91
2 ha cambiato i file con 209 aggiunte e 209 eliminazioni
  1. 205 205
      Module/mod_IDCertificate/IDCertFSM.cpp
  2. 4 4
      Module/mod_IDCertificate/IDCertFSM.h

+ 205 - 205
Module/mod_IDCertificate/IDCertFSM.cpp

@@ -109,14 +109,14 @@ struct ImgChekTask : ITaskSp
 		imgCheckReq.topN = 1;
 		imgCheckReq.returnImgBase64 = 1;
 
-		string imgIn = imgInput.m_pData; //图片原始数据
+		string imgIn = imgInput.m_pData; //鍥剧墖鍘熷�鏁版嵁
 		long srclen = imgInput.m_iLength;
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("m_iLength图片数据长度为%ld.", srclen);
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("m_iLength鍥剧墖鏁版嵁闀垮害涓�%ld.", srclen);
 				
 		string encodeIn = base64_encode((unsigned char*)imgInput.m_pData, srclen);
 		//string encodeIn;
-		//Encode(imgIn, encodeIn); //传给服务端应base64编码
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("base64 encode 成功。");
+		//Encode(imgIn, encodeIn); //浼犵粰鏈嶅姟绔�簲base64缂栫爜
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("base64 encode 鎴愬姛銆�");
 		imgCheckReq.imageBase64 = encodeIn;
 
 		CSmartPointer<IConfigInfo> spCtSettingConfig;
@@ -127,15 +127,15 @@ struct ImgChekTask : ITaskSp
 		string m_url = tUrl.GetData();
 		if (m_url.size() == 0)
 		{
-#ifdef DEVOPS_ON_ST /*DevOps流水线编译,ST环境*/
+#ifdef DEVOPS_ON_ST /*DevOps娴佹按绾跨紪璇戯紝ST鐜��*/
 			m_url = "https://carddetect.paasst.cmbchina.cn/api/card/image-detect";
-#elif defined(DEVOPS_ON_UAT)/*DevOps流水线编译,UAT环境*/
+#elif defined(DEVOPS_ON_UAT)/*DevOps娴佹按绾跨紪璇戯紝UAT鐜��*/
 			m_url = "https://carddetect.paasuat.cmbchina.cn/api/card/image-detect";
-#elif defined(DEVOPS_ON_PRD)/*DevOps流水线编译,PRD环境*/
+#elif defined(DEVOPS_ON_PRD)/*DevOps娴佹按绾跨紪璇戯紝PRD鐜��*/
 			m_url = "https://carddetect.paas.cmbchina.cn/api/card/image-detect";
-#elif defined(DEVOPS_ON_DEV)/*DevOps流水线编译,Dev&生产环境*/
+#elif defined(DEVOPS_ON_DEV)/*DevOps娴佹按绾跨紪璇戯紝Dev&鐢熶骇鐜��*/
 			m_url = "https://carddetect.paas.cmbchina.cn/api/card/image-detect";
-#else/*本地编译等非DevOps环境编译的版本*/
+#else/*鏈�湴缂栬瘧绛夐潪DevOps鐜��缂栬瘧鐨勭増鏈�*/
 			m_url = "https://carddetect.paasst.cmbchina.cn/api/card/image-detect";
 #endif
 		}
@@ -153,20 +153,20 @@ struct ImgChekTask : ITaskSp
 				("imgCheckRetTask userCode:%s,resultdata:%s.", 
 					imgCheckRet.m_userCode.c_str(),imgCheckRet.m_resultData.c_str());
 
-			//Dbg("图片检测成功---");
+			//Dbg("鍥剧墖妫€娴嬫垚鍔�---");
 			if (imgCheckRet.m_success == true) {
-				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("图片检测通过。");
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("鍥剧墖妫€娴嬮€氳繃銆�");
 			}
 			else
 			{
-				errMsg = CSimpleStringA::Format("图片检测不通过,result_data:%s.", imgCheckRet.m_resultData.c_str());
+				errMsg = CSimpleStringA::Format("鍥剧墖妫€娴嬩笉閫氳繃锛宺esult_data:%s.", imgCheckRet.m_resultData.c_str());
 				LogWarn(Severity_Middle, Error_Resource, IDCertificate_UserErrorCode_ScanImg_Failed, errMsg.GetData());
 				if (client) client->Destory();
 				return;
 			}
 		}
 		else {
-			errMsg = CSimpleStringA::Format("图片质量检测失败,ret = %d.", ret);
+			errMsg = CSimpleStringA::Format("鍥剧墖璐ㄩ噺妫€娴嬪け璐ワ紝ret = %d.", ret);
 			LogWarn(Severity_Middle, Error_Resource, IDCertificate_UserErrorCode_ScanImg_Failed, errMsg.GetData());
 		}
 		client->Destory();
@@ -458,120 +458,120 @@ ErrorCodeEnum CIDCertFSM::OnInit()
 	m_devCatInfo.version = { 0, 0, 0, 0 };
 #endif // RVC_OS_LINUX
 
-#ifdef RVC_OS_WIN //windows使用宽字符
-	nationalCode[1] = L"";
-	nationalCode[2] = L"蒙古";
-	nationalCode[3] = L"";
-	nationalCode[4] = L"";
-	nationalCode[5] = L"维吾尔";
-	nationalCode[6] = L"";
-	nationalCode[7] = L"";
-	nationalCode[8] = L"";
-	nationalCode[9] = L"布依";
-	nationalCode[10] = L"朝鲜";
-	nationalCode[11] = L"";
-	nationalCode[12] = L"";
-	nationalCode[13] = L"";
-	nationalCode[14] = L"";
-	nationalCode[15] = L"土家";
-	nationalCode[16] = L"哈尼";
-	nationalCode[17] = L"哈萨克";
-	nationalCode[18] = L"";
-	nationalCode[19] = L"";
-	nationalCode[20] = L"傈僳";
-	nationalCode[21] = L"";
-	nationalCode[22] = L"";
-	nationalCode[23] = L"高山";
-	nationalCode[24] = L"拉祜";
-	nationalCode[25] = L"";
-	nationalCode[26] = L"东乡";
-	nationalCode[27] = L"纳西";
-	nationalCode[28] = L"景颇";
-	nationalCode[29] = L"阿尔克孜";
-	nationalCode[30] = L"";
-	nationalCode[31] = L"达斡尔";
-	nationalCode[32] = L"仫佬";
-	nationalCode[33] = L"";
-	nationalCode[34] = L"布朗";
-	nationalCode[35] = L"撒拉";
-	nationalCode[36] = L"毛南";
-	nationalCode[37] = L"仡佬";
-	nationalCode[38] = L"锡伯";
-	nationalCode[39] = L"阿昌";
-	nationalCode[40] = L"普米";
-	nationalCode[41] = L"塔吉克";
-	nationalCode[42] = L"";
-	nationalCode[43] = L"乌孜别克";
-	nationalCode[44] = L"俄罗斯";
-	nationalCode[45] = L"鄂温克";
-	nationalCode[46] = L"德昂";
-	nationalCode[47] = L"保安";
-	nationalCode[48] = L"裕固";
-	nationalCode[49] = L"";
-	nationalCode[50] = L"塔塔尔";
-	nationalCode[51] = L"独龙";
-	nationalCode[52] = L"鄂伦春";
-	nationalCode[53] = L"赫哲";
-	nationalCode[54] = L"门巴";
-	nationalCode[55] = L"珞巴";
-	nationalCode[56] = L"基诺";
+#ifdef RVC_OS_WIN //windows浣跨敤瀹藉瓧绗�
+	nationalCode[1] = L"姹�";
+	nationalCode[2] = L"钂欏彜";
+	nationalCode[3] = L"鍥�";
+	nationalCode[4] = L"钘�";
+	nationalCode[5] = L"缁村惥灏�";
+	nationalCode[6] = L"鑻�";
+	nationalCode[7] = L"褰�";
+	nationalCode[8] = L"澹�";
+	nationalCode[9] = L"甯冧緷";
+	nationalCode[10] = L"鏈濋矞";
+	nationalCode[11] = L"婊�";
+	nationalCode[12] = L"渚�";
+	nationalCode[13] = L"鐟�";
+	nationalCode[14] = L"鐧�";
+	nationalCode[15] = L"鍦熷�";
+	nationalCode[16] = L"鍝堝凹";
+	nationalCode[17] = L"鍝堣惃鍏�";
+	nationalCode[18] = L"鍌�";
+	nationalCode[19] = L"榛�";
+	nationalCode[20] = L"鍌堝兂";
+	nationalCode[21] = L"浣�";
+	nationalCode[22] = L"鐣�";
+	nationalCode[23] = L"楂樺北";
+	nationalCode[24] = L"鎷夌�";
+	nationalCode[25] = L"姘�";
+	nationalCode[26] = L"涓滀埂";
+	nationalCode[27] = L"绾宠タ";
+	nationalCode[28] = L"鏅��";
+	nationalCode[29] = L"闃垮皵鍏嬪瓬";
+	nationalCode[30] = L"鍦�";
+	nationalCode[31] = L"杈炬枴灏�";
+	nationalCode[32] = L"浠�浆";
+	nationalCode[33] = L"缇�";
+	nationalCode[34] = L"甯冩湕";
+	nationalCode[35] = L"鎾掓媺";
+	nationalCode[36] = L"姣涘崡";
+	nationalCode[37] = L"浠′浆";
+	nationalCode[38] = L"閿′集";
+	nationalCode[39] = L"闃挎槍";
+	nationalCode[40] = L"鏅�背";
+	nationalCode[41] = L"濉斿悏鍏�";
+	nationalCode[42] = L"鎬�";
+	nationalCode[43] = L"涔屽瓬鍒�厠";
+	nationalCode[44] = L"淇勭綏鏂�";
+	nationalCode[45] = L"閯傛俯鍏�";
+	nationalCode[46] = L"寰锋槀";
+	nationalCode[47] = L"淇濆畨";
+	nationalCode[48] = L"瑁曞浐";
+	nationalCode[49] = L"浜�";
+	nationalCode[50] = L"濉斿�灏�";
+	nationalCode[51] = L"鐙�緳";
+	nationalCode[52] = L"閯備鸡鏄�";
+	nationalCode[53] = L"璧�摬";
+	nationalCode[54] = L"闂ㄥ反";
+	nationalCode[55] = L"鐝炲反";
+	nationalCode[56] = L"鍩鸿�";
 #else
-	nationalCode[1] = "";
-	nationalCode[2] = "蒙古";
-	nationalCode[3] = "";
-	nationalCode[4] = "";
-	nationalCode[5] = "维吾尔";
-	nationalCode[6] = "";
-	nationalCode[7] = "";
-	nationalCode[8] = "";
-	nationalCode[9] = "布依";
-	nationalCode[10] = "朝鲜";
-	nationalCode[11] = "";
-	nationalCode[12] = "";
-	nationalCode[13] = "";
-	nationalCode[14] = "";
-	nationalCode[15] = "土家";
-	nationalCode[16] = "哈尼";
-	nationalCode[17] = "哈萨克";
-	nationalCode[18] = "";
-	nationalCode[19] = "";
-	nationalCode[20] = "傈僳";
-	nationalCode[21] = "";
-	nationalCode[22] = "";
-	nationalCode[23] = "高山";
-	nationalCode[24] = "拉祜";
-	nationalCode[25] = "";
-	nationalCode[26] = "东乡";
-	nationalCode[27] = "纳西";
-	nationalCode[28] = "景颇";
-	nationalCode[29] = "阿尔克孜";
-	nationalCode[30] = "";
-	nationalCode[31] = "达斡尔";
-	nationalCode[32] = "仫佬";
-	nationalCode[33] = "";
-	nationalCode[34] = "布朗";
-	nationalCode[35] = "撒拉";
-	nationalCode[36] = "毛南";
-	nationalCode[37] = "仡佬";
-	nationalCode[38] = "锡伯";
-	nationalCode[39] = "阿昌";
-	nationalCode[40] = "普米";
-	nationalCode[41] = "塔吉克";
-	nationalCode[42] = "";
-	nationalCode[43] = "乌孜别克";
-	nationalCode[44] = "俄罗斯";
-	nationalCode[45] = "鄂温克";
-	nationalCode[46] = "德昂";
-	nationalCode[47] = "保安";
-	nationalCode[48] = "裕固";
-	nationalCode[49] = "";
-	nationalCode[50] = "塔塔尔";
-	nationalCode[51] = "独龙";
-	nationalCode[52] = "鄂伦春";
-	nationalCode[53] = "赫哲";
-	nationalCode[54] = "门巴";
-	nationalCode[55] = "珞巴";
-	nationalCode[56] = "基诺";
+	nationalCode[1] = "姹�";
+	nationalCode[2] = "钂欏彜";
+	nationalCode[3] = "鍥�";
+	nationalCode[4] = "钘�";
+	nationalCode[5] = "缁村惥灏�";
+	nationalCode[6] = "鑻�";
+	nationalCode[7] = "褰�";
+	nationalCode[8] = "澹�";
+	nationalCode[9] = "甯冧緷";
+	nationalCode[10] = "鏈濋矞";
+	nationalCode[11] = "婊�";
+	nationalCode[12] = "渚�";
+	nationalCode[13] = "鐟�";
+	nationalCode[14] = "鐧�";
+	nationalCode[15] = "鍦熷�";
+	nationalCode[16] = "鍝堝凹";
+	nationalCode[17] = "鍝堣惃鍏�";
+	nationalCode[18] = "鍌�";
+	nationalCode[19] = "榛�";
+	nationalCode[20] = "鍌堝兂";
+	nationalCode[21] = "浣�";
+	nationalCode[22] = "鐣�";
+	nationalCode[23] = "楂樺北";
+	nationalCode[24] = "鎷夌�";
+	nationalCode[25] = "姘�";
+	nationalCode[26] = "涓滀埂";
+	nationalCode[27] = "绾宠タ";
+	nationalCode[28] = "鏅��";
+	nationalCode[29] = "闃垮皵鍏嬪瓬";
+	nationalCode[30] = "鍦�";
+	nationalCode[31] = "杈炬枴灏�";
+	nationalCode[32] = "浠�浆";
+	nationalCode[33] = "缇�";
+	nationalCode[34] = "甯冩湕";
+	nationalCode[35] = "鎾掓媺";
+	nationalCode[36] = "姣涘崡";
+	nationalCode[37] = "浠′浆";
+	nationalCode[38] = "閿′集";
+	nationalCode[39] = "闃挎槍";
+	nationalCode[40] = "鏅�背";
+	nationalCode[41] = "濉斿悏鍏�";
+	nationalCode[42] = "鎬�";
+	nationalCode[43] = "涔屽瓬鍒�厠";
+	nationalCode[44] = "淇勭綏鏂�";
+	nationalCode[45] = "閯傛俯鍏�";
+	nationalCode[46] = "寰锋槀";
+	nationalCode[47] = "淇濆畨";
+	nationalCode[48] = "瑁曞浐";
+	nationalCode[49] = "浜�";
+	nationalCode[50] = "濉斿�灏�";
+	nationalCode[51] = "鐙�緳";
+	nationalCode[52] = "閯備鸡鏄�";
+	nationalCode[53] = "璧�摬";
+	nationalCode[54] = "闂ㄥ反";
+	nationalCode[55] = "鐝炲反";
+	nationalCode[56] = "鍩鸿�";
 #endif
 
 	supportUCS2 = FALSE;
@@ -603,13 +603,13 @@ ErrorCodeEnum CIDCertFSM::OnExit()
 ErrorCodeEnum CIDCertFSM::CheckDate(const char* date)
 {
 	string strDate = date;
-	if(strDate.find("长期") != string::npos)
+	if(strDate.find("闀挎湡") != string::npos)
 	{
 		return Error_Succeed;
 	}
 	else
 	{
-		regex pattern("^(([0-9]{4})(\.|-|年)(0[1-9]|1[0-2])(\.|-|月)(0[1-9]|[12][0-9]|3[01])(日)*)$");
+		regex pattern("^(([0-9]{4})(\.|-|骞�)(0[1-9]|1[0-2])(\.|-|鏈�)(0[1-9]|[12][0-9]|3[01])(鏃�)*)$");
 		smatch sm;
 		if(regex_match(strDate, sm, pattern))
 		{
@@ -636,7 +636,7 @@ ErrorCodeEnum CIDCertFSM::CheckDate(const char* startDate, const char* endDate)
 		if(strStartDate == strEndDate)
 			return Error_Succeed;
 	}
-	else if(strEndDate == "长期")
+	else if(strEndDate == "闀挎湡")
 		return Error_Succeed;
 
 	return Error_Unexpect;
@@ -849,7 +849,7 @@ int CIDCertFSM::ReadAndScan(SpReqAnsContext<IDCert_ReadAndScan_Req, IDCert_ReadA
 					ctx->Ans.birthday = idInfoOld.birthday.data;
 					ctx->Ans.address = idInfoOld.address.data;
 					ctx->Ans.idcode = idInfoOld.idno.data;
-					//oilyang@20180309 根据俞根伟,生产上存在身份证异常为'x'的问题,统一进行转换
+					//oilyang@20180309 鏍规嵁淇炴牴浼燂紝鐢熶骇涓婂瓨鍦ㄨ韩浠借瘉寮傚父涓�'x'鐨勯棶棰橈紝缁熶竴杩涜�杞�崲
 					if (ctx->Ans.idcode.GetLength() != 0)
 					{
 						if (ctx->Ans.idcode[ctx->Ans.idcode.GetLength() - 1] == 'x')
@@ -903,7 +903,7 @@ int CIDCertFSM::ReadAndScan(SpReqAnsContext<IDCert_ReadAndScan_Req, IDCert_ReadA
 					ctx->Ans.birthday = idInfo.birthday.data;
 					ctx->Ans.address = idInfo.address.data;
 					ctx->Ans.idcode = idInfo.idno.data;
-					//oilyang@20180309 根据俞根伟,生产上存在身份证异常为'x'的问题,统一进行转换
+					//oilyang@20180309 鏍规嵁淇炴牴浼燂紝鐢熶骇涓婂瓨鍦ㄨ韩浠借瘉寮傚父涓�'x'鐨勯棶棰橈紝缁熶竴杩涜�杞�崲
 					if (ctx->Ans.idcode.GetLength() != 0)
 					{
 						if (ctx->Ans.idcode[ctx->Ans.idcode.GetLength() - 1] == 'x')
@@ -1083,7 +1083,7 @@ int CIDCertFSM::ReadAndScan(SpReqAnsContext<IDCert_ReadAndScan_Req, IDCert_ReadA
 				("exec QueryCardPos first time failed.");
 		}
 		
-		//查询卡片位置以决定跳转
+		//鏌ヨ�鍗$墖浣嶇疆浠ュ喅瀹氳烦杞�
 		eErr1 = m_hDevHelper->QueryCardPos(pos);
 		if (eErr1 == Error_Succeed)
 		{
@@ -1143,7 +1143,7 @@ int CIDCertFSM::ReadAndScan(SpReqAnsContext<IDCert_ReadAndScan_Req, IDCert_ReadA
 		LogError(Severity_High, Error_Unexpect, IDCertificate_UserErrorCode_ReadAndScan_Failed, "ReadAndScan some thing wrong.");
 	}
 #else
-	//zjw@20191219 处理完相关操作再返回给前端,防止状态还未跳转又发起流程
+	//zjw@20191219 澶勭悊瀹岀浉鍏虫搷浣滃啀杩斿洖缁欏墠绔�紝闃叉�鐘舵€佽繕鏈�烦杞�張鍙戣捣娴佺▼
 	if (bGetIDCert) {
 		ctx->Answer(Error_Succeed);
 	} else if (m_bCancelRead) {
@@ -1213,7 +1213,7 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
 	if (supportUCS2 == FALSE)
 	{
 		ctx->Ans.msgtype = 0;
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("supportUCS2 = %d, 厂商不支持生僻字接口。", supportUCS2);
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("supportUCS2 = %d, 鍘傚晢涓嶆敮鎸佺敓鍍诲瓧鎺ュ彛銆�", supportUCS2);
 		ctx->Answer(Error_Succeed);
 		return 0;
 	}
@@ -1331,14 +1331,14 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
 
 			if (errReadEx2 == Error_NotImpl)
 			{
-				ctx->Ans.msgtype = 0; //旧字段传递,GBK、字符串传递文字信息
-				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("厂商不支持新接口,请调用旧接口。");
+				ctx->Ans.msgtype = 0; //鏃у瓧娈典紶閫掞紝GBK銆佸瓧绗︿覆浼犻€掓枃瀛椾俊鎭�
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("鍘傚晢涓嶆敮鎸佹柊鎺ュ彛锛岃�璋冪敤鏃ф帴鍙c€�");
 			}
 			else
 			{
-				ctx->Ans.msgtype = 1; //新字段传递,UTF8、二进制传递文字信息
-				//ex2数据读取功能代码、UCS2转UTF8代码
-				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("使用新字段。");
+				ctx->Ans.msgtype = 1; //鏂板瓧娈典紶閫掞紝UTF8銆佷簩杩涘埗浼犻€掓枃瀛椾俊鎭�
+				//ex2鏁版嵁璇诲彇鍔熻兘浠g爜銆乁CS2杞琔TF8浠g爜
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("浣跨敤鏂板瓧娈点€�");
 				bInvokeReadEx2 = true;
 				if (errReadEx2 != Error_Succeed)
 				{
@@ -1364,9 +1364,9 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
 					unsigned char idVersion[1024]; memset(idVersion, 0, 1024);
 					unsigned char idType[1024]; memset(idType, 0, 1024);
 					
-					unsigned char reserved[1024]; memset(reserved, 0, 1024);//外国人永居证旧证件关联字段
-					unsigned char englishNameEx[1024]; memset(englishNameEx, 0, 1024); //英文名备用字段
-					unsigned char IssuedSN[1024]; memset(IssuedSN, 0, 1024); //换证次数
+					unsigned char reserved[1024]; memset(reserved, 0, 1024);//澶栧浗浜烘案灞呰瘉鏃ц瘉浠跺叧鑱斿瓧娈�
+					unsigned char englishNameEx[1024]; memset(englishNameEx, 0, 1024); //鑻辨枃鍚嶅�鐢ㄥ瓧娈�
+					unsigned char IssuedSN[1024]; memset(IssuedSN, 0, 1024); //鎹㈣瘉娆℃暟
 
 					DbgWithLink(LOG_LEVEL_INFO, ctx->link.checkEmpty() ? LOG_TYPE_SYSTEM : LOG_TYPE_USER)
 						.setAPI("DevAdapter::IDCerGetDataEx2").setCostTime(m_ullEndTime - m_ullBeginTime)
@@ -1374,9 +1374,9 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
 					bReadSuccess = true;
 					LogEvent(Severity_Middle, LOG_EVT_IDCERTIFICATE_OP, "IDCertifacate op.");
 
-					//去除首尾空格
+					//鍘婚櫎棣栧熬绌烘牸
 					RemoveUCS2Blank((UINT16*)idInfoEx2.name.data);
-					CheckHanZi((UINT16*)idInfoEx2.name.data); //检测汉字编码
+					CheckHanZi((UINT16*)idInfoEx2.name.data); //妫€娴嬫眽瀛楃紪鐮�
 
 					RemoveUCS2Blank((UINT16*)idInfoEx2.sex.data);
 					RemoveUCS2Blank((UINT16*)idInfoEx2.nation.data);
@@ -1391,14 +1391,14 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
 					RemoveUCS2Blank((UINT16*)idInfoEx2.idVersion.data);
 					RemoveUCS2Blank((UINT16*)idInfoEx2.idType.data);
 					
-					RemoveUCS2Blank((UINT16*)idInfoEx2.reserved.data); //外国人永居证旧证件关联字段
-					RemoveUCS2Blank((UINT16*)idInfoEx2.reserved2.data); //英文名备用字段
-					RemoveUCS2Blank((UINT16*)idInfoEx2.issuedSN.data); //换证次数
+					RemoveUCS2Blank((UINT16*)idInfoEx2.reserved.data); //澶栧浗浜烘案灞呰瘉鏃ц瘉浠跺叧鑱斿瓧娈�
+					RemoveUCS2Blank((UINT16*)idInfoEx2.reserved2.data); //鑻辨枃鍚嶅�鐢ㄥ瓧娈�
+					RemoveUCS2Blank((UINT16*)idInfoEx2.issuedSN.data); //鎹㈣瘉娆℃暟
 
-					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("已去除首尾空格");
+					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("宸插幓闄ら�灏剧┖鏍�");
 
 #ifdef RVC_OS_WIN
-					//转换成GBK用于debug上传
+					//杞�崲鎴怗BK鐢ㄤ簬debug涓婁紶
 					char* tSex = new char[32];
 					char* tNation = new char[32];
 					char* tBirthday = new char[32];
@@ -1461,7 +1461,7 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
 					iSize = WideCharToMultiByte(CP_ACP, 0, (wchar_t*)tChecKNum, -1, NULL, 0, NULL, NULL);
 					gbktCheckNum = (char*)malloc((iSize + 1));
 					WideCharToMultiByte(CP_ACP, 0, (wchar_t*)tChecKNum, -1, gbktCheckNum, iSize, NULL, NULL);
-					//gbk转换结束
+					//gbk杞�崲缁撴潫
 #endif
 					UCS2_to_UTF8((UINT16*)idInfoEx2.name.data, name);
 					//UCS2_to_UTF8((UINT16*)idInfoEx2.sex.data, sex);
@@ -1486,7 +1486,7 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
 					UCS2_to_UTF8((UINT16*)idInfoEx2.reserved2.data, englishNameEx);
 					UCS2_to_UTF8((UINT16*)idInfoEx2.issuedSN.data, IssuedSN);
 
-					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("已转换成utf8");
+					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("宸茶浆鎹㈡垚utf8");
 
 					ctx->Ans.name_utf8.Alloc(strlen((char*)name));
 					ctx->Ans.sex_utf8.Alloc(strlen((char*)sex));
@@ -1501,8 +1501,8 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
 					ctx->Ans.nationality_utf8.Alloc(strlen((char*)nationality));
 					ctx->Ans.idversion_utf8.Alloc(strlen((char*)idVersion));
 					ctx->Ans.idtype_utf8.Alloc(strlen((char*)idType));
-					ctx->Ans.reserved_utf8.Alloc(strlen((char*)reserved)); //新外国人永居证关联字段
-					ctx->Ans.othercode_utf8.Alloc(strlen((char*)englishNameEx)); //英文名备用字段
+					ctx->Ans.reserved_utf8.Alloc(strlen((char*)reserved)); //鏂板�鍥戒汉姘稿眳璇佸叧鑱斿瓧娈�
+					ctx->Ans.othercode_utf8.Alloc(strlen((char*)englishNameEx)); //鑻辨枃鍚嶅�鐢ㄥ瓧娈�
 
 					memcpy(ctx->Ans.name_utf8.m_pData, name, strlen((char*)name));
 					memcpy(ctx->Ans.sex_utf8.m_pData, sex, strlen((char*)sex));
@@ -1517,10 +1517,10 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
 					memcpy(ctx->Ans.nationality_utf8.m_pData, nationality, strlen((char*)nationality));
 					memcpy(ctx->Ans.idversion_utf8.m_pData, idVersion, strlen((char*)idVersion));
 					memcpy(ctx->Ans.idtype_utf8.m_pData, idType, strlen((char*)idType));
-					memcpy(ctx->Ans.reserved_utf8.m_pData, reserved, strlen((char*)reserved)); //新外国人永居证关联字段
-					memcpy(ctx->Ans.othercode_utf8.m_pData, englishNameEx, strlen((char*)englishNameEx)); //英文名备用字段
+					memcpy(ctx->Ans.reserved_utf8.m_pData, reserved, strlen((char*)reserved)); //鏂板�鍥戒汉姘稿眳璇佸叧鑱斿瓧娈�
+					memcpy(ctx->Ans.othercode_utf8.m_pData, englishNameEx, strlen((char*)englishNameEx)); //鑻辨枃鍚嶅�鐢ㄥ瓧娈�
 
-					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("已传递接口字段。");
+					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("宸蹭紶閫掓帴鍙e瓧娈点€�");
 
 					m_ullBeginTime = SP::Module::Comm::RVCGetTickCount();
 					eErr = m_hDevHelper->ScanIDAndSaveImage();
@@ -1692,7 +1692,7 @@ int CIDCertFSM::ReadAndScanUTF8(SpReqAnsContext<IDCert_ReadAndScanUTF8_Req, IDCe
 				("exec QueryCardPos first time failed.");
 		}
 
-		//查询卡片位置以决定跳转
+		//鏌ヨ�鍗$墖浣嶇疆浠ュ喅瀹氳烦杞�
 		m_ullBeginTime = SP::Module::Comm::RVCGetTickCount();
 		eErr1 = m_hDevHelper->QueryCardPos(pos);
 		m_ullEndTime = SP::Module::Comm::RVCGetTickCount();
@@ -2000,7 +2000,7 @@ ErrorCodeEnum CIDCertFSM::GetDevCatInfo(DevCategoryInfo &devInfo, CSimpleStringA
 	strncpy(devInfo.szModel, m_devCatInfo.szModel, (MAX_DEV_MODEL_LEN > strlen(m_devCatInfo.szModel)) ? strlen(m_devCatInfo.szModel) + 1 : MAX_DEV_MODEL_LEN);
 	strncpy(devInfo.szType, m_devCatInfo.szType, (MAX_DEV_TYPE_LEN > strlen(m_devCatInfo.szType)) ? strlen(m_devCatInfo.szType) + 1 : MAX_DEV_TYPE_LEN);
 	strncpy(devInfo.szVendor, m_devCatInfo.szVendor, (MAX_DEV_VENDOR_LEN > strlen(m_devCatInfo.szVendor)) ? strlen(m_devCatInfo.szVendor) + 1 : MAX_DEV_VENDOR_LEN);
-	devType = m_devVer;//适配器版本号
+	devType = m_devVer;//閫傞厤鍣ㄧ増鏈�彿
 	devInfo.eState = DEVICE_STATUS_NORMAL;
 	memcpy(&devInfo.version, &m_devCatInfo.version, sizeof(DevSoftVersion));
 	return Error_Succeed;
@@ -2009,7 +2009,7 @@ ErrorCodeEnum CIDCertFSM::GetDevCatInfo(DevCategoryInfo &devInfo, CSimpleStringA
 	strncpy_s(devInfo.szModel, m_devCatInfo.szModel, (MAX_DEV_MODEL_LEN > strlen(m_devCatInfo.szModel)) ? strlen(m_devCatInfo.szModel) : MAX_DEV_MODEL_LEN);
 	strncpy_s(devInfo.szType, m_devCatInfo.szType, (MAX_DEV_TYPE_LEN > strlen(m_devCatInfo.szType)) ? strlen(m_devCatInfo.szType) : MAX_DEV_TYPE_LEN);
 	strncpy_s(devInfo.szVendor, m_devCatInfo.szVendor, (MAX_DEV_VENDOR_LEN > strlen(m_devCatInfo.szVendor)) ? strlen(m_devCatInfo.szVendor) : MAX_DEV_VENDOR_LEN);
-	devType = m_devVer;//适配器版本号
+	devType = m_devVer;//閫傞厤鍣ㄧ増鏈�彿
 	return Error_Succeed;
 #endif // RVC_OS_LINUX
 }
@@ -2041,7 +2041,7 @@ int CIDCertFSM::WaitFetchIDCard()
 		}
 		if (eErr == Error_Succeed && pos == 0)
 		{
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("WaitFetchIDCard")("身份证被取回");
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("WaitFetchIDCard")("韬�唤璇佽�鍙栧洖");
 			return 0;
 		}
 		Sleep(1000);
@@ -2106,7 +2106,7 @@ int CIDCertFSM::Initial() //windows ver
 	GetEntityBase()->GetFunction()->GetSysVar("FWBDevSN", tmpDevSN);
 	GetEntityBase()->GetFunction()->GetSysVar("FWBVendor", tmpVendor);
 	GetEntityBase()->GetFunction()->GetSysVar("FWBVersion", tmpDLLVersion);
-	if (tmpDLLVersion.GetLength() < 2)//如果忘记配置,则直接使用默认值8.1
+	if (tmpDLLVersion.GetLength() < 2)//濡傛灉蹇樿�閰嶇疆锛屽垯鐩存帴浣跨敤榛樿�鍊�8.1
 		tmpDLLVersion = "8.1";
 	if (tmpDevSN.GetLength() > 12 && tmpDevSN.IndexOf("FWB") > 2)
 	{
@@ -2138,7 +2138,7 @@ int CIDCertFSM::Initial() //windows ver
 
 	pEntity->InitializeVendorLogSwitch();
 
-	/** 如果是多合一,意义在哪? Gifur@2023330]*/
+	/** 濡傛灉鏄��鍚堜竴锛屾剰涔夊湪鍝�紵 Gifur@2023330]*/
 	spConfig->ReadConfigValue("Device.IDCertificate", "Vendor", m_devVendor);
 	spConfig->ReadConfigValue("Device.IDCertificate", "Version", m_devVer);
 	spConfig->ReadConfigValue("Device.IDCertificate", "Batch", m_devBatch);
@@ -2186,19 +2186,19 @@ int CIDCertFSM::Initial() //windows ver
 		CSimpleStringA szMod(m_devCatInfo.szModel);
 		if (strstr(m_devCatInfo.szModel, "CODE=UCS2") != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("UCS2新库。");
+			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("UCS2鏂板簱銆�");
 			supportUCS2 = TRUE;
 		}
 
 		if (strstr(m_devCatInfo.szModel, "STYLE=IG") != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("吸入式设备");
+			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("鍚稿叆寮忚�澶�");
 			igestionVer = TRUE;
 		}
 
 		if (strstr(m_devCatInfo.szModel, "FUNCTION=ITFY") != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("支持新版外国人永居证");
+			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("鏀�寔鏂扮増澶栧浗浜烘案灞呰瘉");
 			supportNewForeigner = TRUE;
 		}
 
@@ -2216,16 +2216,16 @@ int CIDCertFSM::Initial() //windows ver
 	if (m_hDevHelper != nullptr)
 	{
 		m_bOpened = true;
-		LogWarn(Severity_Low, Error_Unexpect, IDCertificate_UserErrorCode_DevOpen_Success, "身份证打开成功");
+		LogWarn(Severity_Low, Error_Unexpect, IDCertificate_UserErrorCode_DevOpen_Success, "韬�唤璇佹墦寮€鎴愬姛");
 		if(invalidBreak && m_readAndScanCtx != nullptr)
 		{
-			LogWarn(Severity_Middle, Error_Unexpect, IDCertificate_UserErrorCode_ReadAndScan_Interrupt, "读证件异常退出");
+			LogWarn(Severity_Middle, Error_Unexpect, IDCertificate_UserErrorCode_ReadAndScan_Interrupt, "璇昏瘉浠跺紓甯搁€€鍑�");
 			m_readAndScanCtx->Answer(Error_Unexpect, IDCertificate_UserErrorCode_ReadAndScan_Interrupt);
 			invalidBreak = false;
 		}
 		else if (invalidBreak && m_readAndScanUTF8Ctx != nullptr) //ex3
 		{
-			LogWarn(Severity_Middle, Error_Unexpect, IDCertificate_UserErrorCode_ReadAndScan_Interrupt, "读证件Ex异常退出");
+			LogWarn(Severity_Middle, Error_Unexpect, IDCertificate_UserErrorCode_ReadAndScan_Interrupt, "璇昏瘉浠禘x寮傚父閫€鍑�");
 			m_readAndScanUTF8Ctx->Answer(Error_Unexpect, IDCertificate_UserErrorCode_ReadAndScan_Interrupt);
 			invalidBreak = false;
 		}
@@ -2240,7 +2240,7 @@ int CIDCertFSM::Initial() //linux ver
 {
 	LOG_FUNCTION();
 
-	bkPicPath = "bk.png"; //初始化默认背景图片名称
+	bkPicPath = "bk.png"; //鍒濆�鍖栭粯璁よ儗鏅�浘鐗囧悕绉�
 	
 	auto pEntity = GET_DEV_ENTITY_BASE_POINTER();
 	pEntity->InitializeVendorLogSwitch();
@@ -2276,7 +2276,7 @@ int CIDCertFSM::Initial() //linux ver
 	GetEntityBase()->GetFunction()->GetSysVar("FWBVendor", tmpVendor);
 	GetEntityBase()->GetFunction()->GetSysVar("FWBDevSN", tmpDevSN);
 	GetEntityBase()->GetFunction()->GetSysVar("FWBVersion", tmpDLLVersion);
-	if (tmpDLLVersion.GetLength() < 2)//如果忘记配置,则直接使用默认值8.1
+	if (tmpDLLVersion.GetLength() < 2)//濡傛灉蹇樿�閰嶇疆锛屽垯鐩存帴浣跨敤榛樿�鍊�8.1
 		tmpDLLVersion = "8.1";
 	if (tmpDevSN.GetLength() > 12 && tmpDevSN.IndexOf("FWB") > 2)
 	{
@@ -2360,19 +2360,19 @@ int CIDCertFSM::Initial() //linux ver
 		CSimpleStringA szMod(m_devCatInfo.szModel);
 		if (strstr(m_devCatInfo.szModel, "CODE=UCS2") != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("UCS2新库。");
+			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("UCS2鏂板簱銆�");
 			supportUCS2 = TRUE;
 		}
 
 		if (strstr(m_devCatInfo.szModel, "STYLE=IG") != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("吸入式设备");
+			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("鍚稿叆寮忚�澶�");
 			igestionVer = TRUE;
 		}
 
 		if (strstr(m_devCatInfo.szModel, "FUNCTION=ITFY") != NULL)
 		{
-			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("支持新版外国人永居证");
+			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("鏀�寔鏂扮増澶栧浗浜烘案灞呰瘉");
 			supportNewForeigner = TRUE;
 		}
 
@@ -2403,14 +2403,14 @@ void CIDCertFSM::ToLogWarnInfoAboutTermCustom()
 
 	if(!m_csMachineType.Compare("RVC.Stand2S", true) && !m_adapterInfo.strVendor.Compare("kxd", true))
 	{
-		//先读取系统变量是否有该值?
+		//鍏堣�鍙栫郴缁熷彉閲忔槸鍚︽湁璇ュ€硷紵
 		CSimpleStringA deviceInfo(true);
 		GetEntityBase()->GetFunction()->GetSysVar("kxdInfo", deviceInfo);
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("deviceInfo = %s", deviceInfo.GetData());
 		if(!deviceInfo.Compare("KXD", true))
 		{
-			//读取运行时信息,如果有值,不再写,如果没有值,读取告警的信息
-			//这中间会存在这里还在写,但其他模块已经要去读取该运行时的信息了,可能有先后顺序?
+			//璇诲彇杩愯�鏃朵俊鎭�紝濡傛灉鏈夊€硷紝涓嶅啀鍐欙紝濡傛灉娌℃湁鍊硷紝璇诲彇鍛婅�鐨勪俊鎭�
+			//杩欎腑闂翠細瀛樺湪杩欓噷杩樺湪鍐欙紝浣嗗叾浠栨ā鍧楀凡缁忚�鍘昏�鍙栬�杩愯�鏃剁殑淇℃伅浜嗭紝鍙�兘鏈夊厛鍚庨『搴忥紵
 			CSimpleStringA strWarnMsg(true);
 			CSimpleStringA szTypeInfo(true);
 			CSimpleStringA deviceType(true);
@@ -2435,7 +2435,7 @@ void CIDCertFSM::ToLogWarnInfoAboutTermCustom()
 							deviceType = "KL286";
 						}
 						GetEntityBase()->GetFunction()->SetSysVar("kxdInfo", deviceType, true);
-						//加个告警?
+						//鍔犱釜鍛婅�锛�
 						LogWarn(Severity_Low, Error_Unexpect, IDCertificate_UserErrorCode_KxdDeviceInfo, deviceType.GetData());
 					}
 				}
@@ -2485,7 +2485,7 @@ BOOL CIDCertFSM::UCS2_to_UTF8(UINT16* ucs2_code, UINT8* utf8_code)
 			out += 3;
 		}
 
-		//挪动两个字节
+		//鎸�姩涓や釜瀛楄妭
 		++ucs2_code;
 	}
 
@@ -2496,14 +2496,14 @@ BOOL CIDCertFSM::GetSexUTF8String(UINT16* in, UINT8* out)
 {
 	if (!out)
 	{
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("性别转换out字段为空!");
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("鎬у埆杞�崲out瀛楁�涓虹┖锛�");
 		return false;
 	}
 
 #ifdef RVC_OS_WIN
-	wstring man = L"";
-	wstring woman = L"";
-	wstring unknow = L"未说明";
+	wstring man = L"鐢�";
+	wstring woman = L"濂�";
+	wstring unknow = L"鏈��鏄�";
 
 	unsigned char tmp[1024];
 	memset(tmp, 0, 1024);
@@ -2526,15 +2526,15 @@ BOOL CIDCertFSM::GetSexUTF8String(UINT16* in, UINT8* out)
 		break;
 	}
 #else
-	//linux默认编码就是utf8,直接拷贝
-	char* man = "";
-	char* woman = "";
-	char* unknow = "未说明";
+	//linux榛樿�缂栫爜灏辨槸utf8,鐩存帴鎷疯礉
+	char* man = "鐢�";
+	char* woman = "濂�";
+	char* unknow = "鏈��鏄�";
 
 	unsigned char sexIn[1024];
 	memset(sexIn, 0, 1024);
-	UCS2_to_UTF8(in, sexIn); //linux默认编码就是utf8,转成utf8格式后直接就是linux下的char类型
-	long sexCode = atoi((char*)sexIn); //直接转成数字
+	UCS2_to_UTF8(in, sexIn); //linux榛樿�缂栫爜灏辨槸utf8锛岃浆鎴恥tf8鏍煎紡鍚庣洿鎺ュ氨鏄痩inux涓嬬殑char绫诲瀷
+	long sexCode = atoi((char*)sexIn); //鐩存帴杞�垚鏁板瓧
 
 	switch (sexCode)
 	{
@@ -2553,7 +2553,7 @@ BOOL CIDCertFSM::GetSexUTF8String(UINT16* in, UINT8* out)
 	}
 #endif
 
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("性别代码映射成功");
+	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("鎬у埆浠g爜鏄犲皠鎴愬姛");
 	return true;
 }
 
@@ -2577,13 +2577,13 @@ BOOL CIDCertFSM::GetNationalUTF8String(UINT16* in, UINT8* out)
 #else
 	unsigned char nationIn[1024];
 	memset(nationIn, 0, 1024);
-	UCS2_to_UTF8(in, nationIn); //linux默认编码就是utf8,转成utf8格式后直接就是linux下的char类型
+	UCS2_to_UTF8(in, nationIn); //linux榛樿�缂栫爜灏辨槸utf8锛岃浆鎴恥tf8鏍煎紡鍚庣洿鎺ュ氨鏄痩inux涓嬬殑char绫诲瀷
 
-	int nCode = atoi((char*)nationIn); //直接转成数字
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("民族编码转换成数字atoi成功。结果为%ld.", nCode);
+	int nCode = atoi((char*)nationIn); //鐩存帴杞�垚鏁板瓧
+	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("姘戞棌缂栫爜杞�崲鎴愭暟瀛梐toi鎴愬姛銆傜粨鏋滀负%ld.", nCode);
 	if (nCode >= 1 && nCode <= 56)
 	{
-		//linux默认编码就是utf8,直接拷贝
+		//linux榛樿�缂栫爜灏辨槸utf8,鐩存帴鎷疯礉
 		memcpy(out, nationalCode[nCode].c_str(), strlen(nationalCode[nCode].c_str()));
 	}
 	else
@@ -2592,7 +2592,7 @@ BOOL CIDCertFSM::GetNationalUTF8String(UINT16* in, UINT8* out)
 	}
 #endif
 
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("民族代码映射成功");
+	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("姘戞棌浠g爜鏄犲皠鎴愬姛");
 	return true;
 }
 
@@ -2605,27 +2605,27 @@ BOOL CIDCertFSM::GetDateStandardFormatUTF8(UINT16* in, UINT8* out)
 	}
 
 #ifdef RVC_OS_WIN
-	wstring longtime = L"长期";
+	wstring longtime = L"闀挎湡";
 	unsigned char ltimeCheck[1024];
 	memset(ltimeCheck, 0, 1024);
 	UCS2_to_UTF8((UINT16*)longtime.c_str(), ltimeCheck);
 #else
-	char* ltimeCheck = "长期"; //linux默认编码就是utf8
+	char* ltimeCheck = "闀挎湡"; //linux榛樿�缂栫爜灏辨槸utf8
 #endif
 
 	unsigned char ltimeIn[1024];
 	memset(ltimeIn, 0, 1024);
 	UCS2_to_UTF8(in, ltimeIn);
 
-	int cmp = strcmp((char*)ltimeCheck, (char*)ltimeIn); //判断长期证件
+	int cmp = strcmp((char*)ltimeCheck, (char*)ltimeIn); //鍒ゆ柇闀挎湡璇佷欢
 	if (cmp == 0)
 	{
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("长期身份证,转换日期为9999/12/31");
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("闀挎湡韬�唤璇侊紝杞�崲鏃ユ湡涓�9999/12/31");
 #ifdef RVC_OS_WIN
 		wstring time = L"9999/12/31";
 		UCS2_to_UTF8((UINT16*)time.c_str(), out);
 #else
-		char tEndtime[1024] = "9999/12/31"; //linux默认编码就是utf8,不转换,直接传出去就好
+		char tEndtime[1024] = "9999/12/31"; //linux榛樿�缂栫爜灏辨槸utf8锛屼笉杞�崲锛岀洿鎺ヤ紶鍑哄幓灏卞ソ
 		memcpy(out, tEndtime, strlen(tEndtime));
 #endif
 		return true;
@@ -2639,7 +2639,7 @@ BOOL CIDCertFSM::GetDateStandardFormatUTF8(UINT16* in, UINT8* out)
 	UINT16* p2 = trans;
 	while (*p1 != '\0')
 	{
-		if (cnt == 4 || cnt == 7) //在对年份和月份后增加斜杠
+		if (cnt == 4 || cnt == 7) //鍦ㄥ�骞翠唤鍜屾湀浠藉悗澧炲姞鏂滄潬
 		{
 			*p2 = '/';
 			p2++;
@@ -2656,7 +2656,7 @@ BOOL CIDCertFSM::GetDateStandardFormatUTF8(UINT16* in, UINT8* out)
 	//*p2 = '\0';
 
 	UCS2_to_UTF8(trans, out);
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("日期格式转换成功!");
+	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("鏃ユ湡鏍煎紡杞�崲鎴愬姛锛�");
 	return true;
 }
 
@@ -2680,7 +2680,7 @@ BOOL CIDCertFSM::RemoveUCS2Blank(UINT16* ucs2_code)
 		if (*tmp != ' ' && findContent == false)
 		{
 			findContent = true;
-			start = tmp;  //找到内容开始位置
+			start = tmp;  //鎵惧埌鍐呭�寮€濮嬩綅缃�
 			end = tmp;
 		}
 		else
@@ -2697,7 +2697,7 @@ BOOL CIDCertFSM::RemoveUCS2Blank(UINT16* ucs2_code)
 	tmp = end;
 	while (*tmp != '\0')
 	{
-		if (*tmp == ' ') //去除结尾空格
+		if (*tmp == ' ') //鍘婚櫎缁撳熬绌烘牸
 		{
 			*tmp = '\0';
 			break;
@@ -2720,7 +2720,7 @@ void CIDCertFSM::CheckHanZi(UINT16* ucs2_code)
 	{
 		if (*tmp >= 0x4e00 && *tmp <= 0x9fa5)
 		{
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("是汉字。");
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("鏄�眽瀛椼€�");
 		}
 		else
 		{
@@ -2732,7 +2732,7 @@ void CIDCertFSM::CheckHanZi(UINT16* ucs2_code)
 			memset(strFileHash, 0, 4);
 			SP::Module::Util::HexBuf2StrBuf(fileHash, &strFileHash, 2);
 
-			CSimpleStringA warn = CSimpleStringA::Format("姓名第%d个字非汉字编码, 数据为:%s", count, strFileHash);
+			CSimpleStringA warn = CSimpleStringA::Format("濮撳悕绗�%d涓�瓧闈炴眽瀛楃紪鐮�, 鏁版嵁涓�:%s", count, strFileHash);
 			LogWarn(Severity_Low, Error_Debug, IDCertificate_UserErrorCode_ReadAndScan_NotHanZi, warn.GetData());
 		}
 

+ 4 - 4
Module/mod_IDCertificate/IDCertFSM.h

@@ -355,10 +355,10 @@ private:
 #else
 	unordered_map<int, string> nationalCode;
 #endif
-	BOOL supportUCS2; //支持生僻字
-	BOOL igestionVer; //吸入式设备
-	BOOL supportNewForeigner; //支持新版外国人永居证 2023.11.10
-	CSimpleStringA bkPicPath; //合成背景的图片路径
+	BOOL supportUCS2; //鏀�寔鐢熷兓瀛�
+	BOOL igestionVer; //鍚稿叆寮忚�澶�
+	BOOL supportNewForeigner; //鏀�寔鏂扮増澶栧浗浜烘案灞呰瘉 2023.11.10
+	CSimpleStringA bkPicPath; //鍚堟垚鑳屾櫙鐨勫浘鐗囪矾寰�
 
 	BOOL closeImgCheck;