社区
C++ Builder
帖子详情
字符编码转换问题???
52vc
2010-01-15 03:41:35
UnicodeString str="你好";
用函数1
转换成unicode编码
函数2
将unicode编码转回"你好";
...全文
290
14
打赏
收藏
字符编码转换问题???
UnicodeString str="你好"; 用函数1 转换成unicode编码 函数2 将unicode编码转回"你好";
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
java
字符
编码
转换
字符
编码
是将
字符
转换
为二进制数字的过程,用于计算机的输入、输出和存储。在Java中,
字符
编码
是使用Java编程语言中的Unicode
字符
集进行处理的。Unicode
字符
集是一个标准的
字符
集,它为世界上的每个
字符
分配了一个...
IDEA
字符
编码
转换
问题
IDEA
字符
编码
转换
问题
之前学习都使用用Eclipse,由于IDEA的美观和提示功能功能非常强大,现在改用IDEA。 但是在转变的过程中就遇到
字符
编码
转换
问题
。 windows下默认的
编码
GBK,Eclipse中默认的
编码
也是GBK,IDEA...
浅谈C/C++编程中的
字符
编码
转换
导致这种现象的根源就在于
字符
集
编码
不匹配导致,本文将探索隐藏在编程过程中鲜为人知的
字符
集
转换
问题
,如果你彻底理解了以下几个
字符
集的概念,以及编程过程中哪些因素会影响这些
字符
集,将有助于你从根
java
字符
编码
转换
在开发的过程中,
字符
编码
常常令我们头痛。经常会出现各种各样的乱码。下面就介绍java的
编码
转换
和常见的乱码是使用什么样的
编码
去读取的:先看一张图片:在看看java中如何处理
编码
的
转换
:package com.test; /** ...
C语言
编码
与
字符
转换
c语言支持的
字符
编码
多字节
字符
编码
:用一个字节表示数字、字母,用多个字节表示其它
字符
(汉字两个字节)。
字符
长度定义:一个字节为一个
字符
长度。 宽字节
字符
编码
(UNICODE):全部用两个字节表示
字符
。
字符
...
C++ Builder
13,871
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章