编程论坛
注册
登录
编程论坛
→
Delphi论坛
delphi中把一个字符串保存到一个文本文件中。有没有什么方法以GB18030的编码方式保存?
lubing513
发布于 2010-07-28 00:46, 2857 次点击
delphi中把一个字符串保存到一个文本文件中。请问有没有什么方法以GB18030的编码方式保存这个文件?
[
本帖最后由 lubing513 于 2010-7-28 00:47 编辑
]
6 回复
#2
东海一鱼
2010-07-28 15:09
windows并没有直接提供GB18030的编码支持,不过你可以使用他支持的Unicode对应地区码的转换,来自己处理编码保存。
#3
lubing513
2010-07-28 18:09
版主,能说得具体点吗?
#4
东海一鱼
2010-07-29 10:29
从Unicode编码到GB18030编码的映射方法如下:
U=Unicode编码-0x10000
m1=U/12600
n1=U%12600
m2=n1/1260
n2=n1%1260
m3=n2/10
n3=n2%10
第一字节b1=m1+0x90
第二字节b2=m2+0x30
第三字节b3=m3+0x81
第四字节b4=n3+0x30
如果你不能理解上面的内容,请看这篇文章:
http://forgetoneself.
[
本帖最后由 东海一鱼 于 2010-7-29 10:30 编辑
]
#5
lubing513
2010-07-30 18:41
好的,谢谢版主了。对了,小弟还有一个很菜的问题想请教。
buf[0]:=buf[1];
buf[1]:=buf[2];
buf[2]:=buf[3];
像这样的代码要怎么写才能又精单又快呢?
#6
东海一鱼
2010-07-30 22:30
看成整数,直接移位。岂不快哉!
buf[0]:= '1';
buf[1]:= '2';
buf[2]:= '3';
buf[3]:= '4';
Integer(buf):= Integer(buf) shr 8; //嘿嘿,想想为什莫是shr而不是shl
ShowMessage('str: ' + buf[0] + buf[1]+ buf[2]);
#7
寻H不得
2010-10-11 20:57
哎 偶太菜了 看不懂
1