DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: tkzcol
今日帖子: 5
在线用户: 28
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 ivvn (奔腾的心) ★☆☆☆☆ -
普通会员
2008/12/24 8:57:57
标题:
取得文件的编码问题,就是取得某文件是UTF8还是ANSI等 浏览:1399
加入我的收藏
楼主: 具我所所知,文件的编码就存在文件的开头几个字节中.

不知道有没有现成的模块能读取文件的字符编码!
----------------------------------------------
-
作者:
男 ebread (ebread) ★☆☆☆☆ -
盒子活跃会员
2008/12/24 9:20:11
1楼: 是的,通过读取文件头几个字节(BOM),就可以判断编码格式。
具体可参考:
.Net与字符编码(理论篇)
http://www.cnblogs.com/baoquan/archive/2007/12/04/981721.html

Delphi与字符编码(实战篇)
http://www.cnblogs.com/baoquan/archive/2008/01/05/1027371.html
----------------------------------------------
The best way to predict the future is to invent it.
作者:
男 ivvn (奔腾的心) ★☆☆☆☆ -
普通会员
2008/12/24 9:25:50
2楼: 问楼上的

BOM_Utf8

BOM_UTF16_MSB  

这些东西在哪个单元中?
----------------------------------------------
-
作者:
男 egust (欢迎访问 Delphi@smth.org) ★☆☆☆☆ -
普通会员
2008/12/24 10:09:49
3楼: 对于utf-8文件来说,bom不是必要的,因为一般情况下可以通过utf-8的编码规则判断出是否是utf-8编码(但是会有一定程度的误判,比如写满了“通”字的gb-2312编码文件容易被误判成utf-8文件)

bom使用的是u+feff字符,该字符被定义为 zero-width no-break space(0宽无空白),用utf-8编码后就是 $EF $BB $BF 三个字节;根据cpu的endian不同,utf-16的bom会编成 little-endian 和 big-endian 两种,对于文件来说 utf-16(le/be) 的bom就是必需的。utf-16 le 的bom是 $FF $EF ,be的是 $EF $FF
----------------------------------------------
cnblogs中我写的关于Delphi的blog,欢迎访问:
http://www.cnblogs.com/egust/
作者:
男 ebread (ebread) ★☆☆☆☆ -
盒子活跃会员
2008/12/24 11:25:26
4楼: 可参考JclUnicode.pas单元
(Delphi2009里面可以直接使用SysUtils.TEncoding类)
----------------------------------------------
The best way to predict the future is to invent it.
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行109.375毫秒 RSS