社区
Delphi
帖子详情
GBK编码如何转换成十六进制 ?
dxbjeremy
2006-07-05 05:58:36
GBK转换成十六进制的代码怎么写,谢谢大家。还有 GBK转换成二进制? GBK转换成 UCS2? GBK转换成纯ASCII字符串?这些转换编码代码如何写,谢谢大家了。
...全文
1456
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编码的代码怎么写?
Qt中的字符
编码
转换:UTF8、Unicode、
GBK
、ASCII、16进制字符、16进制数值
Qt字符转换,串口接收数据转为中文显示可用。Qt中的字符
编码
转换:UTF8、Unicode、
GBK
、ASCII、16进制字符、16进制数值
C++
gbk
转unicode、ansi转unicode,字符串查找、切割、转
十六进制
、转二进制、转义,随机数等数据处理类源码
有以下函数可供使用: 1数据转换:ANSI等
编码
、UTF8
编码
、UTF16
编码
(实际为Unicode
编码
)、TCHAR互转,可以先获取转换出的数据在存储时所需的大小 2字符串查找:正向查找、逆向查找、指定偏移查找 3字符串切割:正向分割、逆向分割、指定偏移切割 4字符串转
十六进制
字符串、二进制字符串 5转义字符串 6随机数 源码包含了封装的功能模块类以及测试类, 全部源码都可以用VS2020编译通过,请放心使用! 友情提示,为了兼顾一些旧代码,预编译头文件用的是StdAfx.h,如果需要更换为最新的pch.h,请按照以下步骤操作: 1将StdAfx.h、StdAfx.cpp移出项目,并添加pch.h、pch.cpp 2选中整个项目,项目-属性-C++-预编译头-预编译头文件:pch.h 3选中单个pch.cpp文件,右键菜单,属性-C++-预编译头-预编译头:创建(/Yc) 4确保步骤2、3在所有配置(配置:Release、Debug,平台:Win32、x64,共四种组合)均设置成功 5源码中所有使用StdAfx.h的地方,均改为pch.h
9节课征服「字符
编码
」
ASCII、GB2312、
GBK
、GB18030Unicode、UTF-8、UTF-16、UTF-32
C#计算输入汉字
GBK
编码
后
十六进制
数输出的方法
本文实例讲述了C#计算输入汉字
GBK
编码
后
十六进制
数输出的方法。分享给大家供大家参考。具体实现方法如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace getCode { class Program { /// /// 计算输入汉字对应的
GBK
编码
主函数入口 /// /// < /param
汉字对应各种进制
编码
对照表
汉字对应unicode
十六进制
编码
汉字对应unicode十进制
编码
汉字对应
gbk
十六进制
编码
汉字对应
gbk
十进制
编码
Delphi
5,388
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章