社区
Delphi
帖子详情
GBK编码如何转换成十六进制 ?
dxbjeremy
2006-07-05 05:58:36
GBK转换成十六进制的代码怎么写,谢谢大家。还有 GBK转换成二进制? GBK转换成 UCS2? GBK转换成纯ASCII字符串?这些转换编码代码如何写,谢谢大家了。
...全文
1623
19
打赏
收藏
GBK编码如何转换成十六进制 ?
GBK转换成十六进制的代码怎么写,谢谢大家。还有 GBK转换成二进制? GBK转换成 UCS2? GBK转换成纯ASCII字符串?这些转换编码代码如何写,谢谢大家了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dxbjeremy
2006-07-25
打赏
举报
回复
对一个字符串这样调换我也写好了,但最后存到内存不知道是不是ucs2码,麻烦加下我的QQ 19982375,帮下忙,不盛感激。
柯本
2006-07-25
打赏
举报
回复
最笨的方法,作一个循环就可以了
var
s:string;
i:integer;
b:char;
begin
s:=#$ba#$4e#$1f#$75#$93#$7d#$df#$71; // unicode: ba 4e 1f 75 93 7d df 71
i:=1;
while i<length(s) do
begin
b:=s[i];
s[i]:=s[i+1];
s[i+1]:=b;
i:=i+2;
end;
//结果s为:4e ba 75 1f 7d 93 71 df
dxbjeremy
2006-07-25
打赏
举报
回复
人生經營 四个字 的unicode编码和 ucs2编码如下:
unicode: ba 4e 1f 75 93 7d df 71
ucs2是unicode两两换位,就是4e ba 75 1f 7d 93 71 df
问下在内存中怎么调换,unicode转换ucs2这个函数的代码怎么写,请大家帮忙!特请keiy()帮忙,谢谢!
dxbjeremy
2006-07-17
打赏
举报
回复
C++的程序: strcpy(stSubmit.szMsgContent,pszMsgContent);
Delphi的程序:StrPCopy(SGIPSubmit.Submit.MessageContent, SubmitRecord.F_MessageContent);
对短信内容就做了这个处理,其他也没做什么处理了,结果是C++程序的发送繁体手机收到是繁体,能看清,Delphi程序发的同样繁体字手机收到的是乱码。有没有什么办法帮我想想,谢谢。加下我的QQ吧,帮帮忙!实在找到解决方法了。
柯本
2006-07-17
打赏
举报
回复
以前也是帮别人写过发短信的程序(用C++写的),也是用USC2,没问题,不过没有用到繁体
不过,繁体也有多种编码,有GB编码的繁体,有unicode编码的繁体,有BIG5的繁体,你可以看一下收到的乱码的编码,是否是上述之一,在win2k/xp系统下,前两种编码可以显示(但不能混在一起),后一种肯定是乱码.你可以发一个字如:"机"(機),看收到的代码是什么:
GBK:$BBFA
UCS2:$3A67
GB繁体:$9943
UCS2繁体:$5F6A
BIG5:$BEF7
dxbjeremy
2006-07-17
打赏
举报
回复
我在用delphi写sgip1.2短信网关协议程序,发送繁体字变乱码,开始用GBK码,会变乱码,现在想用USC2码试下,用你的这种转换后也是不行。你写过这个程序吗?
柯本
2006-07-17
打赏
举报
回复
如果是C++的程序可以,delphi应该同样可以,只不过,如果对编码方式不是很熟,最好不要用delphi的string类型(它会自动转换Unicode/GBK),建议用PCHAR/PWIDECHAR,这样,与C++的程序完全可以做到兼容
柯本
2006-07-14
打赏
举报
回复
我上面不是已经写了吗?
dxbjeremy
2006-07-14
打赏
举报
回复
GBK编码如何转换成UCS2码?具体怎么写?麻烦再帮忙!
柯本
2006-07-14
打赏
举报
回复
上面的
s1:=s;
由delphi自动调用StringToWideChar将GBK的s转面UCS2的s1,你也可以自己调用StringToWideChar将GBK字串转成USC2字串,这些都是delphi中自带的,没有必要自己再写一个
柯本
2006-07-14
打赏
举报
回复
我不明白, 你的USC2ToGBK就是将USC2字串转成GBK的字串,其它在delphi中它就会自动转换的.就如我的:
var
s:string;
s1:widestring;
...
s:='你好'; //GBK字串
s1:=s; // USC2字串
dxbjeremy
2006-07-14
打赏
举报
回复
你是把 string型转换成 GBK和USC2, 这两中之间怎么转换?你看我上面写的这个USC2ToGBK方法挺复杂的,没你说的这么简单。
dxbjeremy
2006-07-07
打赏
举报
回复
keiy()你好,很感谢你的热心,我现在是写一个短信网关程序,发送繁体字变成乱码,我的QQ:19982375 ,或MSN: dengx_b@hotmail.com,麻烦加我下,谢谢。
柯本
2006-07-07
打赏
举报
回复
更完整的程序:
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
x,y:word;
s1:widestring;
begin
s:='啊';
x:=ord(s[1])*256+ord(s[2]); //结果为$B0A1,即为s的gbk码
s1:=s;
y:=ord(s1[1]); //结果为$554A,把它转成$4A55,就是'啊'的UCS2码
y:=swap(y);
ShowMessage('啊的GBK码为:$'+inttohex(x,4));
ShowMessage('啊的UCS2码为:$'+inttohex(y,4));
end;
柯本
2006-07-07
打赏
举报
回复
我上面已写过了:GBK转换成 UCS2,可将S直接赋给WideString变量或用StringToWideChar
再给你个例子:
var
s:string;
x,y:word;
s1:widestring;
begin
s:='啊';
x:=ord(s[1])*256+ord(s[2]); //结果为$B0A1,即为s的gbk码
s1:=s;
y:=ord(s1[1]); //结果为$554A,把它转成$4A55,就是'啊'的UCS2码
end;
dxbjeremy
2006-07-07
打赏
举报
回复
function UCS2toGB(P: Pointer; Size: Integer = 70): string;
var
PP: PByte;
I: Integer;
ByteA: Byte;
ByteB: Byte;
P1: PByte;
P2: PByte;
Pw: PWideChar;
// s:string;
begin
PP := PByte(P);
I := 0;
while (I < Size) do
begin
P1 := PP;
ByteA := PP^;
Inc(PP);
P2 := PP;
ByteB := PP^;
Inc(PP);
P1^ := ByteB;
P2^ := ByteA;
Inc(I);
end;
Pw := PWidechar(P);
Result := Pw;
end;
这是USC2转换成GBK的代码,大家帮忙把这个算法倒写下看行不行,谢谢了!
柯本
2006-07-06
打赏
举报
回复
GBK转成二字节整型:
var
s:string;
x:word;
s1:widestring;
begin
s:='啊';
x:=ord(s[1])*256+ord(s[2]); //结果为$B0A1,即为s的gbk码
end;
至于GBK转换成十六进制,二进制,有个概念问题,你是要把它变成十六进制,二进制字符串还是其它(本身计算机所有存储都是二进制的)
如果要转成十六进制字串,可用inttostr(x,4),要转二进制,也是最基本的算法(网上找一下有N多)
GBK转换成 UCS2,可将S直接赋给WideString变量或用StringToWideChar
GBK转换成纯ASCII字符串?不明白,两个不同的编码,你要怎么转?
dxbjeremy
2006-07-06
打赏
举报
回复
自己顶!
dxbjeremy
2006-07-06
打赏
举报
回复
gbk编码转换成UCS2编码的代码怎么写?
中文
转换成
十六进制
编码
这条命令会将`aa.txt`文件中的
GBK
编码
内容转换为ASCII(
十六进制
)形式,并将结果保存在`bb.txt`文件中。 5. **查看结果**: 转换完成后,打开`bb.txt`文件,你会看到中文字符被
转换成
了对应的
十六进制
编码
,每两...
十六进制
与时间转换
在分析包含汉字的数据时,这样的工具尤其有用,因为汉字在计算机内部是通过特定的
编码
(如GB2312、
GBK
、UTF-8等)以二进制形式存储的,这些二进制数据可以通过
十六进制
转换来查看和理解。 "安装说明.txt"可能提供了...
汉字中文
十六进制
显示转换
在这些
编码
中,每个汉字会被转化为一个或多个字节的二进制表示,进一步可以
转换成
十六进制
字符串。
十六进制
(Hexadecimal)是逢16进1的进位制,通常用于表示二进制数据,因为它比二进制更简洁。在编程中,我们常常...
字符串
十六进制
转换工具(包含ANSI和UNICODE)
本工具专注于ANSI和UNICODE字符串与
十六进制
之间的转换,这涉及到字符
编码
和二进制数据的理解。 首先,我们要理解ANSI和UNICODE的概念。ANSI字符串通常指的是基于特定地区或语言的ASCII
编码
,它使用7位或8位来表示...
文本
编码
查询软件:一键互转 Text ASCII Unicode UTF
GBK
BIG5,
十六进制
显示,字符编解码超便捷软件
7.
GBK
编码
:使用
GBK
编码
的
十六进制
表示 8. BIG5
编码
:使用BIG5
编码
的
十六进制
表示 软件使用技巧说明: 1. 实时转换:输入文本后,所有
编码
格式会自动更新,无需额外操作 2. 内容复制:直接点击对应
编码
的输出框,...
Delphi
5,939
社区成员
262,944
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章