(100分)问一个Delphi字符编码的转换的问题

cimil 2008-02-14 12:15:05

在Delphi的窗体文件中,字符集采用ANSI编码,
如,“电”字表示为“#30005”。(希望没记错)
请问如何将某个汉字转换为类似数值,它们之间的转换关系是如何的?
谢谢!

...全文
321 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
neweipeng 2008-02-14
  • 打赏
  • 举报
回复
s:string='电';
num:integer;
num:=ord(s[1])<<8+ord(s[2]);
cimil 2008-02-14
  • 打赏
  • 举报
回复
非常感谢。我明白了。就此结贴。
wisdosoft 2008-02-14
  • 打赏
  • 举报
回复
支持budded,object单元,TextTobinary BinaryToText
fangsp 2008-02-14
  • 打赏
  • 举报
回复
用ANSI编码 在网上找找 应该有的
budded 2008-02-14
  • 打赏
  • 举报
回复
vcl不都有源代码么?自己看啊
ObjectBinaryToText
ObjectTextToBinary
ZuoBaoquan 2008-02-14
  • 打赏
  • 举报
回复
1. Delphi的dfm文件默认是按ANSI编码保存的
2. '电'的Unicode编码(CodePoint)是U+7535(十六进制),换成十进制就是#30005
3. 由于是UTF-16 Little Endian,所以其内存表示为$35 $75,刚好可以用Integer(s[1])取得其整数值(s为WideString类型)。
4. 推荐阅读.Net与字符编码(理论篇)
cimil 2008-02-14
  • 打赏
  • 举报
回复
s:string='电';
num:integer;
num:=ord(s[1]) < <8+ord(s[2]);

================================
s占几个字节?s[0]呢?

我是用PHP来试的,网页设为GB2312编码,则是占两个字节。设为Utf-8编码,则为3个字节。
我不知道设置ANSI编码应该怎么写。
brightyang 2008-02-14
  • 打赏
  • 举报
回复
ord就行了

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧