社区
VB基础类
帖子详情
请教 ANSI、UNICODE、UTF-8 的问题
fxy_2002
2004-04-28 02:00:04
1、UNICODE 与 UTF-8 是什么关系?如何互相转换?
2、如何用VB将 ANSI 字符变成UTF-8编码?
3、如何用VB建立 UTF-8 编码格式的文件?
我用 open fileName for binary as #n 打开文件,
再用 put #n,,string 写文件,产生的文件总是 ANSI 编码的,如果能写成 UTF-8编码?
...全文
254
15
打赏
收藏
请教 ANSI、UNICODE、UTF-8 的问题
1、UNICODE 与 UTF-8 是什么关系?如何互相转换? 2、如何用VB将 ANSI 字符变成UTF-8编码? 3、如何用VB建立 UTF-8 编码格式的文件? 我用 open fileName for binary as #n 打开文件, 再用 put #n,,string 写文件,产生的文件总是 ANSI 编码的,如果能写成 UTF-8编码?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cslf
2004-04-30
打赏
举报
回复
'string to byte
bytes=strconv(str1,vbfromunicode)
zyl910
2004-04-29
打赏
举报
回复
VB的String数据类型是基于Unicode
但MicroSoft为了兼容传统编程习惯
文件读写、调用API时VB会自动进行ANSI<->Unicode转换
所以二进制文件读写的时候绝对不能用String
必须用Byte数组
fxy_2002
2004-04-29
打赏
举报
回复
特别感谢 cslf(cs) ,研究中....
ryuginka
2004-04-29
打赏
举报
回复
学习
fxy_2002
2004-04-29
打赏
举报
回复
楼上说得没错,不过字符到byte数组,又是一个转换问题。
这个转换VB有现成的函数吗?好象没有的,要用API
cslf
2004-04-28
打赏
举报
回复
看看这两个,希望对你有帮助。
http://www-900.ibm.com/developerWorks/cn/unicode/utfencodingforms/index.shtml
http://www.csdn.net/develop/Read_Article.asp?Id=26123
kmzs
2004-04-28
打赏
举报
回复
UTF-8 是 UNICODE 实用化的实现方式,因为UNICODE会使占用太大空间。。。
cslf
2004-04-28
打赏
举报
回复
Unicode和UTF-8之间有个编码表:
UTF-8 有一下特性:
UCS 字符 U+0000 到 U+007F (ASCII) 被编码为字节 0x00 到 0x7F (ASCII 兼容). 这意味着只包含 7 位 ASCII 字符的文件在 ASCII 和 UTF-8 两种编码方式下是一样的.
所有 >U+007F 的 UCS 字符被编码为一个多个字节的串, 每个字节都有标记位集. 因此, ASCII 字节 (0x00-0x7F) 不可能作为任何其他字符的一部分.
表示非 ASCII 字符的多字节串的第一个字节总是在 0xC0 到 0xFD 的范围里, 并指出这个字符包含多少个字节. 多字节串的其余字节都在 0x80 到 0xBF 范围里. 这使得重新同步非常容易, 并使编码无国界, 且很少受丢失字节的影响.
可以编入所有可能的 231个 UCS 代码
UTF-8 编码字符理论上可以最多到 6 个字节长, 然而 16 位 BMP 字符最多只用到 3 字节长.
Bigendian UCS-4 字节串的排列顺序是预定的.
字节 0xFE 和 0xFF 在 UTF-8 编码中从未用到.
下列字节串用来表示一个字符. 用到哪个串取决于该字符在 Unicode 中的序号.
U-00000000 - U-0000007F: 0xxxxxxx
U-00000080 - U-000007FF: 110xxxxx 10xxxxxx
U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
xxx 的位置由字符编码数的二进制表示的位填入. 越靠右的 x 具有越少的特殊意义. 只用最短的那个足够表达一个字符编码数的多字节串. 注意在多字节串中, 第一个字节的开头"1"的数目就是整个串中字节的数目.
例如: Unicode 字符 U+00A9 = 1010 1001 (版权符号) 在 UTF-8 里的编码为:
11000010 10101001 = 0xC2 0xA9
而字符 U+2260 = 0010 0010 0110 0000 (不等于) 编码为:
11100010 10001001 10100000 = 0xE2 0x89 0xA0
这里“特性”说的比较清楚了,你自己编个函数就行了。
Rex_love_Burger
2004-04-28
打赏
举报
回复
关注。。
flc
2004-04-28
打赏
举报
回复
关注
fxy_2002
2004-04-28
打赏
举报
回复
感谢 cslf(cs) ,看了你给的地址,长了不少见识。
不过还是解决不了我的问题:VB中如何将 UTF-8 与其它编码相互转换?
strConv 可以在 ANSI 与 UNICODE 中互转,但没厄 UTF-8 的选择参数。
nik_Amis
2004-04-28
打赏
举报
回复
up
ryuginka
2004-04-28
打赏
举报
回复
ding
cslf
2004-04-28
打赏
举报
回复
看看这个
http://www.linuxforum.net/books/UTF-8-Unicode.html
cslf
2004-04-28
打赏
举报
回复
没具体做过这方面的资料。
你先找点UTF-8的编码资料。
STL标准模板库--编程初步视频精讲
它被容纳于C++标准程序库中,是
ANSI
/ISO C++标准中新的也是极具革命性的一部分。 STL将数据结构和算法的分离,使得STL变得非常通用,体现出了范型编程的特点。本课提供对STL各部分内容的入门介绍,使学习者能够了解...
JAVA输出带BOM的
UTF-8
编码的文件
当从http 的response输出CSV文件的时候,设置为utf8的时候默认...bom的,但是windows的Excel是使用bom来确认utf8编码的,所有需要把bom写到文件的开头。 微软在
UTF-8
中使用 BOM 是因为这样可以把
UTF-8
和 ASCI...
Linux下
UTF-8
字符编码
问题
-----------------------------------------这中间选自论坛我份发的帖子---------------------------------------------------...地址是:http://topic.csdn.net/u/20101110/17/cab8cfc9-9ac6-47ce-98b4-e503e75e3e48.h
字符编码笔记:ASCII,
Unicode
和
UTF-8
字符编码笔记:ASCII,
Unicode
和
UTF-8
阮一峰 发表于 2007年10月28日 | 分类:首页 -> 档案 -> IT技术 今天中午,我突然想搞清楚
Unicode
和
UTF-8
之间的关系,于是就开始在网上查资料。 结果,这个...
有关UltraEdit和
UTF-8
- liuchen - 博客园
有关UltraEdit和
UTF-8
- liuchen - 博客园 有关UltraEdit和
UTF-8
- liuchen - 博客园有关UltraEdit和
UTF-8
有关UltraEdit和
UTF-8
昨天写代码,需要在一个模板中引入其他文件并在页面显示,但是显示后...
VB基础类
7,762
社区成员
197,608
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章