`
hcmfys
  • 浏览: 357480 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

#ocx 格式转换

 
阅读更多

#include<iostream>
#include "iconv.h" 
using namespace std;
typedef unsigned char byte;



 class Convert {

	private:
	 int code_convert(char *from_charset,char *to_charset,char *inbuf,int inlen,char *outbuf,int outlen){
		iconv_t cd;
		int rc;
		char **pin = &inbuf;
		char **pout = &outbuf;

		cd = iconv_open(to_charset, from_charset);
		if (cd==0) return -1;
		memset(outbuf,0,outlen);
		if (iconv(cd,pin,(size_t *)&inlen,pout,(size_t *)&outlen)==(size_t)-1) return -1;
		iconv_close(cd);
		return 0;
	}
	int hex2oct(char p)  {
		char  hexData[]  = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','A', 'B', 'C', 'D', 'E', 'F' };
		int size=sizeof(hexData)/sizeof(char);
		for (int i = 0; i <size ; i++) {
			if ( hexData[i]  == p) {
				return i;
				}
			}
		return -1;
	}
/***
 * 
 * @param p1
 * @param p2
 * @param p3
 * @param p4
 * @param charset
 * @return
 *  
 */
	 string hexString2String(char p1, char p2, char p3, char p4, string& charset,string& toCharset){
		byte first = (byte) (hex2oct(p1) * 16 + hex2oct(p2));
		byte  second = ( byte) (hex2oct(p3) * 16 + hex2oct(p4));
		byte  bytes[3]  ;	 
		bytes[1] = first;
		bytes[0] = second;
		bytes[2]='\0';
		char out_buffer[16];
		char *from=const_cast<char*>(charset.c_str());
		char *to=const_cast<char*>(toCharset.c_str());
		size_t length=code_convert(from,to,(char*)bytes,3,out_buffer,16);
		if(length<0){
			cout<<"conver error \n";
		}
		 
		string ret="";
		ret=out_buffer;
	    return ret;

	}

	/**
	 * &#x7EC4;&#x7EC7;&#x4E13;&#x7EBF;&#x5F00;&#x901A;
	 * 
	 *  
	 */
  public:
	  string doDecoder(string& html, string& charset,string& toCharset){
		int size = html.size();
		string result = "";
		for (int i = 0; i < size; i++) {
			char c = html.at(i);
			if (c == '&') {
				if ((i + 7) < size) {
					if (html.at(i + 1) == '#' && ( html.at(i + 2) == 'X' || html.at(i + 2) == 'x')) {
						char p1 = html.at(i + 3);
						char p2 = html.at(i + 4);
						char p3 = html.at(i + 5);
						char p4 = html.at(i + 6);
						string s = hexString2String(p1, p2, p3, p4, charset,toCharset);
						result += s;
						i += 7;
					}
				} else {
					result += c;
					continue;
				}
			} else {
				result += c;
			}
		}
		return result;
	}


};


 int  main(int argv,char** argc)   {

		Convert c ;
		string s="&#x7EC4;&#x7EC7;&#x4E13;&#x7EBF;&#x5F00;&&#x901A;";
		string charset="utf-16";
		string toCharset="GB2312";
		string ret = c.doDecoder(s, charset ,toCharset);		 
		cout<<ret.c_str()<<endl;
}



分享到:
评论

相关推荐

    TXT格式转换成JAVA电子书.doc

    ### TXT格式转换成JAVA电子书的知识点解析 #### 一、TXT格式转换成JAVA电子书的基本流程 在本文档中,主要介绍了如何将常见的文本格式(TXT)转换为适用于Java平台的电子书(通常为JAR格式)。这种转换对于希望在...

    OCX发布过程

    2. **Cert2spc.exe**:将cer格式的证书转换为spc格式,即PKCS #7证书。 3. **Cabarc.exe**:将OCX打包成CAB文件。 4. **Signcode.exe**:使用证书对OCX文件进行签名。 5. **Chktrust.exe**:检查签名后的OCX是否正确...

    将ocx文件转换成C#程序引用的DLL文件的办法

    命令格式为“regsvr32 OCX文件名”,如本例中的命令就是“regsvr32 IB_USBKEY.ocx”。 第四步,使用aximp.exe工具编译OCX文件。aximp.exe是.NET Framework SDK提供的工具,用于将COM组件转换成.NET兼容的DLL。在...

    COM方式调用OCX

    这里的`SedGetText`方法可能用于处理文本或数据的某种转换或操作,具体取决于OCX组件的设计。`lRet`变量用于接收方法的返回结果或状态码,`hr`变量则用于检查方法调用是否成功。 #### 释放资源 在使用完毕后,应当...

    delphi动态调用及卸载ocx插件

    这个函数会返回一个IUnknown接口指针,我们可以将其强制转换为对应的接口类型,如IOleObject。 4. 初始化和显示控件:使用控件的接口方法初始化控件,并将其添加到界面上。例如,对于窗口控件,可以将其嵌入到...

    xv格式转换工具

    【xv格式转换工具】是一种专门针对迅雷下载的.xv格式视频的转换软件,它旨在帮助用户将这种特殊格式的视频还原为原始格式,以便能够在各种常见的非迅雷播放器上进行播放,无需依赖迅雷看看软件进行在线观看。...

    海康威视OCX控件

    这涉及到图像处理技术,包括图像捕获和格式转换。 3. 录像:可以实现对视频流的录制,保存为文件供后期查看。这涉及到文件存储格式,如MP4或AVI,以及录制策略的设定,如定时录像、移动检测录像等。 4. 云台控制:...

    OCX转易模块工具2013版

    "OCX转易模块工具2013版"是一款专为易语言开发者设计的工具,它能够帮助程序员将OCX控件转换为易语言(E语言)兼容的模块。易语言是一种中国本土开发的、以中文编程为主的编程语言,旨在降低编程难度,提高编程效率...

    视频播放OCX 控件

    视频解码是播放控件的核心部分,它涉及到各种视频编码格式的识别和转换。常见的视频编码格式如H.264、MPEG-4等,都需要对应的解码器进行解析。控件内部可能集成了多种解码器,以便处理不同编码格式的视频,保证兼容...

    cximage599c_ocx

    【cximage599c_ocx】是一款强大的图像处理控件,专为开发者设计,用于在应用程序中实现图像的编辑、处理和转换功能。这款控件具有广泛的应用场景,能够支持多种图形文件格式,包括但不限于JPEG、PNG、TIFF、BMP等。...

    摄像头截图OCX控件源码

    Base64是一种字符编码方式,可以将二进制数据转换为ASCII字符串,方便在网络上传输或存储在文本格式的数据库中。这种方式特别适用于那些不支持二进制数据传输的应用场景,如HTTP协议。 压缩包中的文件包含以下几个...

    一个将MP3文件转换为WAV文件的源程序,需要mp3play.ocx(11KB)...

    在IT领域,音频格式转换是一项常见的任务,尤其是将流行的MP3格式转换为WAV格式。本文将详细解析标题和描述中提及的项目,一个用于将MP3文件转换为WAV文件的源程序,并讨论相关技术及其重要性。 首先,MP3是一种...

    ocx 将base64转图片的整体解决方案包括源代码,说明文档,bat脚本

    在"ocx将base64转图片的整体解决方案"中,我们关注的是如何利用OCX控件将Base64编码的字符串转换为实际的图片文件。这个解决方案可能包含以下几个部分: 1. **Base64解码**:首先,我们需要一个函数或方法来解码...

    PDF文件格式转换

    PDF文件格式转换是一个常见的需求,尤其在文档处理和信息共享中。PDF(Portable Document Format)是一种通用的文件格式,能够保留原始文档的布局和样式,但有时我们需要将PDF转换为其他格式,以便编辑、重新排版或...

    ocx.rar_ftp ocx_ftp下载ocx_ocx

    主要为了说明下载原理”,这表明压缩包包含的资源可能是一个示例或教程,用于演示FTP(文件传输协议)和HTTP(超文本传输协议)这两种网络下载方式的工作原理,并且这个示例可以通过编译转换为OCX控件,以便集成到...

    显示类液晶数字的OCX

    在使用液晶数字OCX的过程中,开发者可以通过编程接口(API)来控制这些控件的属性,例如颜色、字体样式、数字格式、动画效果等。这些API通常包括设置数字值的方法、改变显示样式的方法以及触发特定事件的函数。例如...

    代替OCX Activex 等IE插件的方式

    - 使用exe4j将JAR文件转换为EXE可执行文件。 - **配置exe4j**: - 输入应用名称和输出路径。 - 选择GUI模式,输入文件名。 - 设置最大最小JRE版本。 - 移除默认的JRE查找选项。 #### 结论 通过上述步骤,我们...

    c#调用ocx问题

    这个问题的焦点在于如何将C#中的数组转换为适合OCX控件接收的形式。 在OCX的接口定义中,数组通常通过`VARIANT*`类型进行传递。`VARIANT`是COM中的一种数据结构,可以容纳各种类型的值,包括数组。当C#项目引用OCX...

    mswinsck.ocx MSWINSCK.OCX 下载

    6. **IP地址和端口操作**:支持对IP地址和端口号的操作,如解析、转换和绑定等。 7. **UDP支持**:除了TCP,控件还支持无连接的用户数据报协议(UDP),适合于一次性的、不需要保证数据完整性的通信场景。 在安装...

    ocx数字证书制作工具和制作方法

    这是Microsoft提供的一款命令行工具,用于将个人证书(PEM或PFX格式)转换为证书链的SPC(Software Publisher's Certificate)文件。SPC文件是Windows系统中用于代码签名的一种格式,它包含了所有必要的证书信息。 ...

Global site tag (gtag.js) - Google Analytics