|
本帖最后由 FLY000 于 2011-6-14 09:33 编辑
mysql数据库的默认编码是latin,QTP连接数据库从中取出的记录中文显示为乱码;
在浏览器上设置编码方式为UTF-8,可以数据表记录中的中文字符可以正常显示;
我试过了如下方法都行不通:
1. 修改数据库的编码为utf-8,取出的记录仍然是中文显示为乱码
2. 创建数据库,设置编码为utf-8,导入数据文件,仍然中文显示为乱码
3. 在QTP中将连接数据库取出的值转换为utf-8编码,转化后中文乱码变成其他乱码
附件是需要转换编码的文件
RecordString = ConvertTo(txtPath,cString,"utf-8")
- Function ConvertTo(FileUrl,ConvertString,CharSet)
- Call WriteToFile(FileUrl,ConvertString,CharSet)
- cString= ReadFile(FileUrl,CharSet)
- ConvertTo = cString
- End Function
复制代码
- 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
复制代码
- Function WriteToFile (FileUrl, Str, CharSet)
- Dim fso,f
- Set fso = CreateObject("Scripting.FileSystemObject")
- If Not fso.FileExists(FileUrl) Then
- Set f = fso.CreateTextFile(FileUrl)
- Else
- Set f = fso.OpenTextFile(FileUrl,8)
- f.Close
- Set f = nothing
- End If
- 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
复制代码 |
|