根据官方的解释,海康设备有很多种字符集格式,需要通过登录后对设备信息进行判断才能确定到底是哪种字符集。
通过NET_DVR_Login_V40登录返回设备信息NET_DVR_DEVICEINFO_V40中byCharEncodeType可以判断设备的字符集。
byCharEncodeType有:字符编码类型(SDK所有接口返回的字符串编码类型,透传接口除外):0- 无字符编码信息(老设备),1- GB2312(简体中文),2- GBK,3- BIG5(繁体中文),4- Shift_JIS(日文),5- EUC-KR(韩文),6- UTF-8,7- ISO8859-1,8- ISO8859-2,9- ISO8859-3,…,依次类推,21- ISO8859-15(西欧)
早期的门禁和人证设备中文字符格式是GBK,现在中文字符格式一般是UTF-8;交通抓拍车牌号的中文字符格式一般是GBK;人脸抓拍和比对设备的中文字符格式一般是UTF-8。
参数赋值,请根据设备实际返回的字符集进行转换。
编程范例如下:
tmpCarLic = Encoding.UTF7.GetString(nET_ITS_PLATE_RESULT.struPlateInfo.sLicense)
tmpCarLic = Encoding.UTF8.GetString(nET_ITS_PLATE_RESULT.struPlateInfo.sLicense)
tmpCarLic = Encoding.UTF32.GetString(nET_ITS_PLATE_RESULT.struPlateInfo.sLicense)
tmpCarLic = Encoding.ASCII.GetString(nET_ITS_PLATE_RESULT.struPlateInfo.sLicense)
tmpCarLic = Encoding.Unicode.GetString(nET_ITS_PLATE_RESULT.struPlateInfo.sLicense)
tmpCarLic = Encoding.Default.GetString(nET_ITS_PLATE_RESULT.struPlateInfo.sLicense)