首页
课程
问答
CTF
社区
招聘
看雪峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
看雪峰会
看雪商城
证书查询
社区
编程技术
发新帖
1
0
[求助]求一个汉字算法....
发表于: 2009-2-26 17:27
4471
[求助]求一个汉字算法....
kagayaki
2009-2-26 17:27
4471
如: 汉字: 看雪
有什么方法可以把"看雪"两个中文转为每个中文两位数字, 并能以数字转换为中文.
如: WideStringToAsscii 得出的是每个中文五位数字, 但位数超过了二位
function WideStringToAsscii(Val : WideString) : String;
var
str :String;
i:Integer;
begin
str := '';
Result := '';
if Val = '' then
Exit;
for i := 1 to Length(Val ) do
begin
str := '#' + IntToStr(Ord(Val [i]));
Result := Result + str;
end;
end;
谢谢.............
[课程]Linux pwn 探索篇!
收藏
・
1
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
最新回复
(
4
)
lishiting
雪 币:
200
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
1
回帖
9
粉丝
0
关注
私信
lishiting
2
楼
每一个中文汉字的Ascii占两个字节,相当于 WORD 类型数据,两个汉字占4个字节相当于 DWORD 类型数据,直接转换的话,用16进制表示也要8个数位。
如果用回到 DOS 时代的汉字区位码,可以使每一个字节都减小94,这样有可能将每一个汉字占的数位减少些,但两个数位(如 FF 最多表示 255 种状态,不可能表示出两人个汉字)。
除非将所有的汉字文本压缩再编码,才有可能达成你要的效果,但能否压缩到平均每个汉字占一个字节还是个问题。
你无非是想用常规的ASCII字符表示汉字,建议你用BASE64编码,BASE64编码后的长度会比原来的汉字要大(1/4~1/3左右)。
最后,若想直接用数字表示汉字的话,可以这样:
function WideStringToAsscii(Val : WideString) : String;
var pInt: PWORD;
aVal: DWORD;
begin
pInt := PWORD(PWChar(Val));
Result := '';
{在一个循环内反复执行以下两人行,直至字符结束,
函数的返回值就输出了一串16进制字符串,
每4位表示一个汉字}
Result := Result + IntToHex(pInt^, 4);
Inc(pInt);
end;
2009-2-26 18:00
0
kagayaki
雪 币:
189
活跃值:
(4810)
能力值:
( LV3,RANK:20 )
在线值:
发帖
172
回帖
1232
粉丝
24
关注
私信
kagayaki
3
楼
谢谢, 如果没办法, 只能用其它办法了!!!!!!!!
2009-2-26 20:31
0
rock
雪 币:
225
活跃值:
(173)
能力值:
( LV2,RANK:10 )
在线值:
发帖
28
回帖
323
粉丝
1
关注
私信
rock
4
楼
每个中文两位数字,也就是用两位数字来表示一个中文汉字,所以最多你只能使用0~99共100个汉字。
2009-2-27 15:02
0
icersg
雪 币:
293
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
8
回帖
471
粉丝
0
关注
私信
icersg
5
楼
两位数字是什么意思,像字符串“48”这个样子的?感觉好浪费啊。即使你把它存下来,也是2个字节,比如“4”是0x34,“8”是0x38。还不如直接用ansi或unicode,也是2个字节。
2009-2-27 16:16
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
kagayaki
172
发帖
1232
回帖
20
RANK
关注
私信
他的文章
[分享] Windows 可视化管理 的前身源代码
1804
Windows 可视化管理 1.0.8.2
11776
[分享]从注册表查询USB插拔记录
8694
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
返回
顶部