解决VBScript中文乱码问题
来源:互联网 发布:淘宝卖家运费怎么算 编辑:程序博客网 时间:2024/05/12 12:07
问题描述:从一个文本中读取中文,然后输出到另外一个文本中。每次读取出中文后都是乱码。
解决方法:
1.本想使用OpenTextFile来解决乱码问题的,但是最终以失败告终,OpenTextFile只能提供unicode和ascill字符集的转换,无法解决中文问题。
2.中文字符集需要utf-8、gb2312、gbk和gbk18030等字符集来支持,所以首先将中文读取出来转换成utf-8字符集。
3.使用Adobe.Stream来帮助我们实现字符集的转换。例如:
Dim FileUrl
FileUrl = "C:\Documents and Settings\caiwl\桌面\QTP\Etoh201003301237\Control.xml"
MsgBox ReadFile(FileUrl, "utf-8")
Call WriteToFile(FileUrl, ReadFile(FileUrl, "utf-8"), "utf-8")
'-------------------------------------------------
'函数名称:ReadFile
'作用:利用AdoDb.Stream对象来读取各种格式的文本文件
'----------------------------------------------------
Function ReadFile(FileUrl, CharSet)
Dim Str
Set stm = CreateObject("Adodb.Stream")
stm.Type = 2
stm.mode = 3
stm.charset = CharSet
stm.Open
stm.loadfromfile FileUrl
Str = stm.readtext
stm.Close
Set stm = Nothing
ReadFile = Str
End Function
'-------------------------------------------------
'函数名称:WriteToFile
'作用:利用AdoDb.Stream对象来写入各种格式的文本文件
'参数:FileUrl-文件相对路径;Str-文件内容;CharSet-编码格式(utf-8,gb2312.....)
'----------------------------------------------------
Function WriteToFile (FileUrl, Str, CharSet)
Set stm = CreateObject("Adodb.Stream")
stm.Type = 2
stm.mode = 3
stm.charset = CharSet
stm.Open
stm.WriteText Str
stm.SaveToFile FileUrl, 2
stm.flush
stm.Close
Set stm = Nothing
End Function
这下就不会有乱码了,但稍微不足之处是AdoDb.Stream没有Readline,至于怎么处理,大家根据自己的情况来决定吧。
- 解决VBScript中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 解决中文乱码问题
- 如何度量项目的进度与进展
- 【Processing问题】You forget your skechbook
- 基于按annotation的hibernate主键生成策略
- zbar适配arm64
- Android 双向左右滑动侧边栏效果
- 解决VBScript中文乱码问题
- spring 监听器 IntrospectorCleanupListener简介
- MapReduce中使用字符串拼接导致的问题
- online tools
- static 静态代码块
- 如何调动核心员工的积极性
- 理解Docker
- IOS 界面开发UIButton事件监听
- 设置图标