[好惆怅啊]TCL编码转换的问题
最后在网上看到用encoding convertfrom identity $str来转换编码.结果确实很好,代码如下:
2#include <tcl/tcl.h>
3#include <string>
4
5using namespace std;
6
7int main()
8{
9 string text = "df今天的天气传说是不错的好像。df";
10 string code = "set text [encoding convertfrom identity $text] \n set ret [string range $text 1 5]";
11
12 Tcl_Interp *interp = Tcl_CreateInterp();
13
14 // get all encoding name
15 Tcl_GetEncodingNames(interp);
16 cout << Tcl_GetStringResult(interp) << endl;
17
18 // setup parameters
19 assert(Tcl_SetVar(interp, "text", text.c_str(), TCL_GLOBAL_ONLY));
20 assert(Tcl_SetVar(interp, "ret", "", TCL_GLOBAL_ONLY));
21
22 // eval script
23 Tcl_Eval(interp, code.c_str());
24
25 // get result
26 char *ret;
27 ret = (char *)Tcl_GetVar(interp, "ret", TCL_GLOBAL_ONLY);
28
29 cout << "ret:" << ret << endl;
30
31 system("pause");
32
33 Tcl_DeleteInterp(interp);
34}
但当我在MFC中用的时候却又出现乱码了...太不解了...大家给帮帮忙吧:
2{
3 CHTMLVampireDlg *dlg = (CHTMLVampireDlg*)pParam;
4 CString url;
5 dlg->comboBox_urlList.GetWindowText(url);
6
7 try
8 {
9 CInternetSession session;
10 CHttpConnection* con = new CHttpConnection(&session, url);
11 CString htmlCode, tmpStr;
12 CHttpFile* file = con->OpenRequest(CHttpConnection::HTTP_VERB_GET, "");
13 file->SendRequest();
14 while(file->ReadString(tmpStr))
15 {
16 htmlCode += tmpStr;
17 }
18
19 /**////* 当网页编码为utf-8时启用如下代码 */
20 ///* 转换为正确的编码类型 */
21 //char* buf = htmlCode.GetBuffer();
22 //htmlCode.ReleaseBuffer();
23 //wchar_t* wbuffer = 0;
24 //int wbufferLen = MultiByteToWideChar(CP_UTF8, 0, buf, -1, 0, 0);
25 //wbuffer = new wchar_t[wbufferLen];
26 //memset(wbuffer, 0, sizeof(wchar_t)*wbufferLen);
27 //MultiByteToWideChar(CP_UTF8, 0, buf, -1, wbuffer, wbufferLen);
28
29 /**////* 将宽字符转换为ASCII */
30 //char *ascii = 0;
31 //int asciiLen = WideCharToMultiByte(CP_ACP, 0, wbuffer, -1, 0, 0, 0, 0);
32 //ascii = new char[asciiLen];
33 //memset(ascii, 0, sizeof(char)*asciiLen);
34 //WideCharToMultiByte(CP_ACP, 0, wbuffer, -1, ascii, asciiLen, 0, 0);
35
36 dlg->richEdit_htmlCode.SetWindowText(htmlCode);
37 //delete[] ascii;
38
39 //delete[] wbuffer;
40
41 file->Close();
42 delete file;
43 con->Close();
44 delete con;
45 session.Close();
46
47 }
48 catch(CInternetException* excep)
49 {
50 CString errMsg;
51 excep->GetErrorMessage((LPTSTR)(LPCTSTR)errMsg, 0);
52 dlg->SetWindowText(url + " " + errMsg);
53 excep->ReportError();
54 excep->Delete();
55 }
56
57 return 0;
58}
59
60
61void CHTMLVampireDlg::OnBnClickedButtonExecute()
62{
63 // TODO: 在此添加控件通知处理程序代码
64 CString tclcode, htmlcode;
65 this->edit_htmlCode.GetWindowText(tclcode);
66 this->richEdit_htmlCode.GetWindowText(htmlcode);
67
68
69
70 Tcl_Interp* interp = Tcl_CreateInterp();
71
72 ASSERT(Tcl_SetVar(interp, "htmlCode", (LPCSTR)htmlcode, TCL_GLOBAL_ONLY));
73 ASSERT(Tcl_SetVar(interp, "ret", "", TCL_GLOBAL_ONLY));
74 if(Tcl_Eval(interp, (LPCTSTR)tclcode) == TCL_OK)
75 {
76 char* ret = (char*)Tcl_GetVar(interp, "ret", TCL_GLOBAL_ONLY);
77 ASSERT(ret);
78 this->richEdit_htmlCode.SetWindowText(ret);
79 }
80 else
81 {
82 AfxMessageBox(Tcl_GetStringResult(interp), 0, 0);
83 }
84
85 Tcl_DeleteInterp(interp);
86}
转载于:https://www.cnblogs.com/Alacky/archive/2007/08/28/872102.html
[好惆怅啊]TCL编码转换的问题相关推荐
- c语言中二进制用什么字母表示方法,看C语言编码转换--------负数的二进制表示方法...
今天在看C语言编码转换时,既然对负数的二进制表示有些遗忘,查了下网上的资料,他们说的是个P!误人子弟!和大家讨论了下,贴出来已备在此遗忘: 假设有一个 int 类型的数,值为5,那么,我们知道它在计算 ...
- python文本编码转换_Python: 转换文本编码
最近在做周报的时候,需要把csv文本中的数据提取出来制作表格后生产图表. 在获取csv文本内容的时候,基本上都是用with open(filename, encoding ='UTF-8') as f ...
- Python:UTF-8编码转换成GBK编码
2019独角兽企业重金招聘Python工程师标准>>> #!/usr/bin/env python # -*- coding:utf-8 -*- #UTF-8转换成GBK编码 #te ...
- php ascii转native,编码转换工具native2ascii的使用
1,原理 Property文件中,使用的编码根据机器的设置可能是GBK或者UTF-8.而在Java中读取Property文件时使用的是Unicode编码,编码方式不同会导致中文乱码,因此需要将Prop ...
- java. xerces转xml_Xerces -C++遇到的xml编码转换问题
前两天收到一个同事提交的一个疑难问题,在进行xml编码时,一些特殊的gbk编码汉字,会转换成乱码.当时大概的看了下,应该是编码转换的格式问题,怀疑为开源库的bug,给出一个简单的解决方案后就没有在关注 ...
- VC编写自己构造http协议数据的post上传图片类(MFC环境 带编码转换)(转)
上次用VC写了个MFC环境下的post数据类,地址: /Html/diannaojishu/2009-10/4905858580.html 这次将这个类进行扩展,可以post图片.但这两个post所使 ...
- linux字符串编码转换函数,Linux C++ 字符串 编码识别、编码转换
最近在做一个类似垂直下载的爬虫系统.下载之后有个解析模块,解析之后要求编码一致的向后传入索引,便遇到了编码转换问题. 1. 编码的识别 推荐使用 libchardet, 可以在这个页面下载,使用说明就 ...
- String构造方法和字符集编码转换
2019独角兽企业重金招聘Python工程师标准>>> 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础 ...
- Linux C gbk utf-8编码转换
2019独角兽企业重金招聘Python工程师标准>>> 用linux C 下的函数调用创建中文目录.文件等,字符串的编码格式要求是utf-8格式的. 那么如果linux C下如何进行 ...
- Google App Engine for Java下的URL编码转换问题
URL编码问题 此部分参考英文资料: http://www.blooberry.com/indexdot/html/topics/urlencoding.htm http://www.w3school ...
最新文章
- 输出类型SPER能自动删除公司间STO里的内向交货单?
- C语言基本入门 - 1
- LeetCode 86分割链表87扰乱字符串
- nltk英文词性标注
- Python模块:time模块详解(转)
- (7)关于margin的一些想法2.0
- php 实现百度坐标转换,PHP实现腾讯与百度坐标转换
- OpenCV中Canny边缘检测
- java 参数 python_java可变参数
- 《编译原理》一道关于逆波兰式的作业题(学委推导出了逆波兰式的数学公式表示)
- php der格式 证书,php读取der格式证书乱码解决方法_PHP教程
- elasticsearch 数据类型_ElasticSearch学习笔记
- Android: Android源码下载方法详解
- php钱兆楼,PHP动态网站开发实例教程(第2版)
- 远程监控有效保护家庭安全
- 毫米和像素怎么换算_将mm换算为px (毫米换算为像素)
- CSDN莫名其妙封号
- 浅谈作为一名软件开发,应该学什么、怎么学、怎样更好的提高自己?
- html div父集子集,怎么让父极元素的宽度自动设为所有子集的宽度之和呢?或者怎么保证子集不换行?不考虑用js!...
- “国防七子”经费暴增,清华足足362亿元,甩第二名101亿 |全国高校2022预算大公开...