社区
C++ Builder
帖子详情
字符编码转换问题???
52vc
2010-01-15 03:41:35
UnicodeString str="你好";
用函数1
转换成unicode编码
函数2
将unicode编码转回"你好";
...全文
333
14
打赏
收藏
字符编码转换问题???
UnicodeString str="你好"; 用函数1 转换成unicode编码 函数2 将unicode编码转回"你好";
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
52vc
2010-01-26
打赏
举报
回复
WideString s=Edit1->Text;
WideString s1;
AnsiString s2;
char buff[2000];//编码长度2000
wchar_t buff1[500];//字符长度500
BinToHex((char *)s.c_bstr(),buff,s.Length()*2);
buff[s.Length()*4]='\0';
Memo1->Lines->Add(buff); //得到编码:604F7D59
HexToBin(buff,(char *) buff1,s.Length()*2);
buff1[s.Length()]=0;
s2=buff1; //先赋给AnsiString
s1=s2; //转成unicode
Memo1->Lines->Add(s1); //得到你好
geneshell
2010-01-25
打赏
举报
回复
留念,以后可能用的到
柯本
2010-01-24
打赏
举报
回复
晕中,发现BCB6的一个问题(是我晕了吗?...)
以下这么简单的程序会出错,在IDE下,运行
void __fastcall TForm1::Button1Click(TObject *Sender)
{
WideString s;
wchar_t *p=L"你好";
s=p;
Edit1->Text=s;
} //经查,是在调用WideString的析构函数出错
会弹出CPU窗口,且Edit上无显示
多转一层就没问题了:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
WideString s;
String s1;
wchar_t *p=L"你好";
s1=p;
s=s1;
Edit1->Text=s;
} //这里,s中为unicode内码:604F7D59
运行环境为BCB6+XP(SP3)及BCB6+windwos virtual(win7的virtual XP mode)
在win7+bcb2010下就没问题
所以上面的程序
void __fastcall TForm1::Button1Click(TObject *Sender)
{
WideString s=L"你好";
WideString s1;
AnsiString s2;
char buff[9];
wchar_t buff1[3];
BinToHex((char *)s.c_bstr(),buff,4);
buff[8]='\0';
Memo1->Lines->Add(buff); //得到编码:604F7D59
HexToBin(buff,(char *) buff1,4);
buff1[2]=0;
s2=buff1; //先赋给AnsiString
s1=s2; //转成unicode
Memo1->Lines->Add(s1); //得到你好
}
TripH0101
2010-01-23
打赏
举报
回复
UP
柯本
2010-01-23
打赏
举报
回复
没太看清题意,如果是要转成字串编码,用以下程序
WideString s=L"你好";
WideString s1;
char buff[9];
wchar_t buff1[3];
BinToHex((char *)s.c_bstr(),buff,4);
buff[8]='\0';
Memo1->Lines->Add(buff); //得到编码:604F7D59
HexToBin(buff,(char *) buff1,4);
buff1[2]=0;
s1=buff1; //我的BCB6会在这报错,C2010没问题
Memo1->Lines->Add(s1); //得到你好
柯本
2010-01-23
打赏
举报
回复
BCB本身就有,且可以自动转换
你用以下程序看看吧:
unsigned char *p;
String e;
WideString s=L"你好"; //s中为unicode编码
p=(unsigned char *)s.c_bstr();
e.printf("%02x %02x %02x %02x",p[0],p[1],p[2],p[3]);
Memo1->Lines->Add(e);
AnsiString s1;
s1=s; //这里,自动转为AnsiString,s1中为GBK码
p=(unsigned char *)s1.c_str();
e.printf("%02x %02x %02x %02x",p[0],p[1],p[2],p[3]);
Memo1->Lines->Add(e);
-----------------
结果为:
60 4f 7d 59 //你好 的unicode编码
e4 e3 ba c3 //你好 的GBK编码
以上代码在BCB6中测试
所谓BCB6不支持unicode指的是控件,而非内部函数
hemiya
2010-01-22
打赏
举报
回复
晕楼主还没搞定挺简单的.思路都给你了.
转回"你好的思路".
假设"你好"的16进制的字符串为(数值不对,举个例子)
str = "AABBCCDD"
1,先把"AA"这个16进制字符串转换为char,这样有4个char.
2,把这个4个char依次赋值到一个6byte的数组里,例如char *wbuf= new char[str.Length() + 2];
3,把wbuf最后两个赋值为NULL.
4,UnicodeString cnok((wchar_t *)wbuf);//转回你好
52vc
2010-01-22
打赏
举报
回复
up
52vc
2010-01-19
打赏
举报
回复
如何转回?
hemiya
2010-01-16
打赏
举报
回复
转换成unicode编码
UnicodeString str=L"你好";
UnicodeString str2, str3;
for (int i=1; i<=str.Length(); i++)
{
str3 = IntToHex((unsigned int)str[i], 2)
str2 += str3.SubString(str3.Length()-4, 4);
}
unicode编码转回"你好",麻烦点,还要注意字节的高低端.
每4组str2[i]到str2[i+4]转换成一个wchar_t,再用个UnicodeString str5累加
52vc
2010-01-16
打赏
举报
回复
有具体实例吗?/
ccrun.com
2010-01-15
打赏
举报
回复
遍历字符串,将str[i]转成WORD值按十六进制方式输出.
周药师
2010-01-15
打赏
举报
回复
http://topic.csdn.net/t/20050704/17/4122270.html
IDEA
字符
编码
转换
问题
IDEA
字符
编码
转换
问题
之前学习都使用用Eclipse,由于IDEA的美观和提示功能功能非常强大,现在改用IDEA。 但是在转变的过程中就遇到
字符
编码
转换
问题
。 windows下默认的
编码
GBK,Eclipse中默认的
编码
也是GBK,IDEA中默认的是UTF-8。 一个中文在GBK中是占两个字节,在UTF-8中是三个字节,这样就导致了用UTF-8模式去读GBK的文档就会导致乱码。经过百度和以前...
字符
编码
转换
计算机可以识别并进行运算的只有0和1,世界上各种语言组成又是各不相同的,如何让这些文字可以被正常显示呢?当前的通用方案是:全部按照一种约定好的长度字节进行
编码
,如使用2个字节,同时建立一套2个字节的码表,把识别到的
字符
值去码表查找。其中,约定的长度可以定长的(gb2312和gbk),也可以是变长的(utf-8
字符
编码
解决的也就是按照一种约定的长度解析字节流,然后在一个事先建立好的mapping中去查找所代表的的
字符
。
字符
编码
及
转换
字符
编码
(Character encoding)也称字集码,是把
字符
集中的
字符
,
编码
为指定集合中的某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储或者通信网络的传递。常见的例子是将拉丁字母表
编码
成摩斯电码和ASCII,比如ASCII
编码
是将字母、数字和其它符号进行编号,并用7比特的二进制来表示这个整数。
高校如何通过数据分析提升技术转移转化率?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
计及需求侧响应日前、日内两阶段鲁棒备用优化(Matlab代码实现)
内容概要:本文研究了计及需求侧响应的日前、日内两阶段鲁棒备用优化
问题
,提出了一种基于数据驱动的两阶段分布鲁棒优化方法,结合1-范数和∞-范数构造不确定性集合,有效刻画风电、光伏出力及负荷等多重不确定因素的波动特性。研究构建了电热综合能源系统的联合优化模型,通过协调日前调度计划与日内实时调整,充分发挥需求侧响应资源的灵活调节能力,提升系统在不确定性环境下的备用充裕性与运行鲁棒性,并采用Matlab进行建模与仿真验证,结果表明该方法在保障系统安全的同时显著改善了经济性。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的研究生、科研人员,以及从事新型电力系统调度、综合能源系统规划与运行的工程技术人员。; 使用场景及目标:①应用于高比例可再生能源接入背景下电力系统备用容量的优化配置;②为综合能源系统在多重不确定性下的鲁棒调度提供决策支持;③支撑需求侧资源参与系统辅助服务的机制设计与仿真验证,推动源荷互动协调发展。; 阅读建议:建议读者结合Matlab代码深入理解两阶段鲁棒优化的建模过程,重点关注不确定性集构建、鲁棒约束转化及C&CG等求解算法的实现细节,可进一步拓展至其他分布鲁棒优化形式或耦合更多能源形式的综合能源系统场景。
C++ Builder
13,871
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章