存放在简体中文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则被广泛应用在文件储存和网络传输中。