首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

存放在简体中文Win2k上的文件,究竟是GBK编码,还是UTF-8编码?解决方案

2012-03-27 
存放在简体中文Win2k上的文件,究竟是GBK编码,还是UTF-8编码?存放在简体中文Win2k上的文件,究竟是GBK编码,

存放在简体中文Win2k上的文件,究竟是GBK编码,还是UTF-8编码?
存放在简体中文Win2k上的文件,究竟是GBK编码,还是UTF-8编码?或者是UTF-16编码?

为什么做网页的时候要选择设置编码类型,难道我设置编码为UTF-8的HMTL在我的机器上是以UTF-8存储的,那么如果是一个TXT文件,没有设置过的,是什么编码?

在程序中怎么样把一个UTF编码的文件汉字编码转换成GB2312,或者反过来?

[解决办法]
一般来说,文件开始几个字节用于存放该文件的编码形式。
但对于没有这些标识的文件而言,是无法判断编码形式的,你可以使用南极星之类的软件测试一下。
编码的转换一般都有固定的算法,你需要到网上搜索一下!
[解决办法]
see msdn:

MultiByteToWideChar
and
WideCharToMultiByte
[解决办法]
如果是一个TXT文件,没有设置过的,是什么编码?
一般好象默认的是GB2312
[解决办法]
是啊,是GB2312
[解决办法]
判断头两个字节把,,unicode 的前两个字节是FF FE
[解决办法]
继续看下去...
[解决办法]
UTF-8
[解决办法]
转贴 什么是UTF8

UTF8并不算是一种电脑编码,而是一种储存和传送的格式,如前所述,每个Unicode/UCS字符都以 2或4个bytes来储存,看看以下的比较:

  以 "I am Chinese "为例
   用ANSI储存:12 Bytes
   用Unicode/UCS2储存:24 Bytes + 2 Bytes(header)
   用UCS4储存:48 Bytes + 4 Bytes(header)

  以 "我是中国人 "为例
   用ANSI储存:10 Bytes
   用Unicode/UCS2储存:10 Bytes + 2 Bytes(header)
   用UCS4储存:20 Bytes + 4 Bytes(header)

  由此可见直接以Unicode/UCS的原始形式来储存是一种极大的浪费,而且也不利于互联网的传输(中文稍为合算一点^_^)。

  有见及此,Unicode/UCS的压缩形式--UTF8出现了,套用官方网站的首句话『UTF-8 stands for Unicode Transformation Format-8. It is an octet (8-bit) lossless encoding of Unicode characters.』,由于UTF也适用于编码UCS,故亦可称为『UCS transformation formats (UTF)』

  UTF8是以8bits即1Bytes为编码的最基本单位,当然也可以有基于16bits和32bits的形式,分别称为UTF16和UTF32,但目前用得不多,而UTF8则被广泛应用在文件储存和网络传输中。

热点排行