VB6生成的网页文件汉字显示乱码

gicad 2011-09-08 10:15:21
我在用VB6 SP6开发时遇到个难题,用VB6的Print语句输出生成的网页文件运行时,里面的汉字总是显示乱码。
我也知道VB默认生成的编码是ANSI,转成UNICODE编码就可以,似乎UTF-8格式也行,但是。。。


网上查了很多资料,没一个能解决的。不管是用PUT 语句输出到Binary文件,还是其他函数转换,都没用,还是乱码。

但我生成的HTM文件用记事本打开,另存成UNICODE编码格式或UTF-8格式,网页汉字显示就很正常。

请各位高手给指点一下,举个例子(请用VB6),怎样将生成的文件直接为上述两种格式,,不胜感谢

我的QQ:1381157 欢迎各位来交流
...全文
289 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gicad 2011-09-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiaoyao961 的回复:]
VB code
授权给你,哈哈
'┏〓〓〓〓〓〓〓〓〓 SaveUnicodeFile,start 〓〓〓〓〓〓〓〓〓┓
'[简介]:
'以Unicode格式保存字符到文件
Function SaveUnicodeFile(FileName As String, Str As String) As Boolean
'VB源码,帮你写函数,帮你写代码,帮你写模块,帮你设计软件
……
[/Quote]

在浪子的帮助下,问题已经解决了,高人无处不在呀,,谢谢上述回帖的各位,,
gicad 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xxyj6450 的回复:]
在页面中定义编码格式啊
[/Quote]

我不是做网页、网站,而是程序中调用下,显示在WebBrowser控件窗口,每次调用数据都不一样,不能事先做好,只能每次生成新网页供调用。
三断笛 2011-09-08
  • 打赏
  • 举报
回复
在页面中定义编码格式啊
赵4老师 2011-09-08
  • 打赏
  • 举报
回复
Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByRef lpMultiByteStr As Any, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Private Declare Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByRef lpMultiByteStr As Any, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, ByVal lpUsedDefaultChar As Long) As Long
'常用的代码页:
const cpUTF8 =65001
const cpGB2312 = 936
const cpGB18030=54936
const cpUTF7 =65000
Function MultiByteToUTF16(UTF8() As Byte, CodePage As Long) As String
Dim bufSize As Long
bufSize = MultiByteToWideChar(CodePage, 0&, UTF8(0), UBound(UTF8) + 1, 0, 0)
MultiByteToUTF16 = Space(bufSize)
MultiByteToWideChar CodePage, 0&, UTF8(0), UBound(UTF8) + 1, StrPtr(MultiByteToUTF16), bufSize
End Function

Function UTF16ToMultiByte(UTF16 As String, CodePage As Long) As Byte()
Dim bufSize As Long
Dim arr() As Byte
bufSize = WideCharToMultiByte(CodePage, 0&, StrPtr(UTF16), Len(UTF16), 0, 0, 0, 0)
ReDim arr(bufSize - 1)
WideCharToMultiByte CodePage, 0&, StrPtr(UTF16), Len(UTF16), arr(0), bufSize, 0, 0
UTF16ToMultiByte = arr
End Function

Private Sub Command1_Click()
MsgBox MultiByteToUTF16(UTF16ToMultiByte("ab中,c", cpUTF8), cpUTF8)
End Sub

  • 打赏
  • 举报
回复
SaveUnicodeFile app.path & "\tempx.htm","地图地图"
  • 打赏
  • 举报
回复
授权给你,哈哈
'┏〓〓〓〓〓〓〓〓〓 SaveUnicodeFile,start 〓〓〓〓〓〓〓〓〓┓
'[简介]:
'以Unicode格式保存字符到文件
Function SaveUnicodeFile(FileName As String, Str As String) As Boolean
'VB源码,帮你写函数,帮你写代码,帮你写模块,帮你设计软件
'--需要什么函数或功能,可以联系我。
'版权所有,请保留作者信息.QQ:1085992075
'如需商业用途请联系作者
On Error GoTo Err
If Dir(FileName) <> "" Then Kill FileName
Dim ByteSz() As Byte
Dim hFile As Integer

ByteSz = Str
hFile = FreeFile
Open FileName For Binary As #hFile
Put #hFile, 1, &HFEFF 'unicode文件标记符
Put #hFile, , ByteSz ' ByteSz
Close #hFile
SaveUnicodeFile = True
Exit Function
Err:

End Function
'┗〓〓〓〓〓〓〓〓〓 SaveUnicodeFile,end 〓〓〓〓〓〓〓〓〓┛
  • 打赏
  • 举报
回复
授权给你,哈哈
'┏〓〓〓〓〓〓〓〓〓 SaveUnicodeFile,start 〓〓〓〓〓〓〓〓〓┓
'[简介]:
'以Unicode格式保存字符到文件
Function SaveUnicodeFile(FileName As String, Str As String) As Boolean
'VB源码,帮你写函数,帮你写代码,帮你写模块,帮你设计软件
'--需要什么函数或功能,可以联系我。
'版权所有,请保留作者信息.QQ:1085992075
'如需商业用途请联系作者
On Error GoTo Err
If Dir(FileName) <> "" Then Kill FileName
Dim ByteSz() As Byte
Dim hFile As Integer

ByteSz = Str
hFile = FreeFile
Open FileName For Binary As #hFile
Put #hFile, 1, &HFEFF 'unicode文件标记符
Put #hFile, , ByteSz ' ByteSz
Close #hFile
SaveUnicodeFile = True
Exit Function
Err:

End Function
'┗〓〓〓〓〓〓〓〓〓 SaveUnicodeFile,end 〓〓〓〓〓〓〓〓〓┛

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧