VB UTF-8 Unicode 文件名 文件 求解 100

这个问题困扰许久一直没有解决,百度许久没有答案,再最后一次提问,还是没有回答也就放弃吧。问题是这样子的。现在编写了一个批量文件处理的软件,主要是用来批量修改编辑文件,例如... 这个问题困扰许久一直没有解决,百度许久没有答案,再最后一次提问,还是没有回答也就放弃吧。
问题是这样子的。
现在编写了一个批量文件处理的软件,主要是用来批量修改编辑文件,例如提取大量文件中的链接等等,大部分功能都完成了,不过实际使用中就遇到了问题,就是Unicode的问题。
再次说明,此处的Unicode不是通常VB所说的Unicode,不是字节而是编码。
由于需要处理的文件都是网上保存的网页,所以文件内容和文件名经常会含有Unicode字符,这些字符看起来和普通字符没有两样,但是在VB中就是无法正常显示的,会自动转化为?。
这样子就造成,假若文件内容含有这类字符,往往只能处理其中的英文字符数字等,汉字什么,都是乱码。
假若文件名有这类字符,基本就是文件不能打开,因为VB自动转换,造成文件名一直错误。
于是想问有没有办法可以解决编码问题,判断文字编码类型,并读取,文本内容我还可以按字节读取再转化,但是文件名无解,
改文件名就免了,我想的是解决问题,这个必须解决。
再说一遍此处Unicode不是通常所说的Unicode 是UTF-8之类编码问题。
能解决,追加,
Unicode 文件名 何解,关键?
展开
 我来答
唐山狼HC
2012-01-05 · 超过53用户采纳过TA的回答
知道答主
回答量:162
采纳率:0%
帮助的人:153万
展开全部
这个我真没鼓捣过,但是可以给你出个思路。当初大学老师讲过一点儿,当时没研究,后来也没用。

网页是能够自动识别unicode的文本的,因为不同的字符编码方式是不在一个数值范围的,所以通过数值范围能够判断是否是unicode,还是普通的ascii的。你可以看看有没有自动的转码的函数,在MSDN上找找看,如果能找到是最简便的了。另外读取文件的方式用二进制的方式读取,不要当它是个文本文件,而是当它是个数据文件来读取。读取进来之后先判断是那个类型的,如果是unicode的就得按照unicode的方式处理,否则就用文本的方式打开。

参考资料: http://www.jb51.net/article/25968.htm

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lidajiangzw
2012-01-07 · TA获得超过902个赞
知道小有建树答主
回答量:774
采纳率:0%
帮助的人:711万
展开全部
先占个位置,顺便说下,文件保存时开头几个字节说明了该文件编码方式,unicode第一,二字节是255,254,你用二进制文件方式读前几字节判断是哪种编码,这编嘛最简单,和程序使用编码一致,二进制integer二字节读,ascw转换保存字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王大老虎啊
2012-01-05
知道答主
回答量:33
采纳率:0%
帮助的人:18.6万
展开全部
这个很简单的,你只要按字节写入然后读出转化就可以了,把Unicode中的uft-8编码反汇编成字节,然后读出并转化就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yygll123
2012-01-07 · 超过20用户采纳过TA的回答
知道答主
回答量:60
采纳率:50%
帮助的人:32.6万
展开全部
我以前读取过UTF-8网页,现在拿给你参考一下。
窗体中一个按钮,一个多行文本框
Private Sub Command1_Click()
URLaddr = "http://api.douban.com/book/subject/isbn/9787115157676"
Dim IEread As Object
Dim i&, jj&, aa$
Set IEread = CreateObject("WinHttp.WinHttpRequest.5.1")
CallByName IEread, "Open", VbMethod, "GET", URLaddr, True
CallByName IEread, "Send", VbMethod
CallByName IEread, "WaitForResponse", VbMethod
aa = CallByName(IEread, "ResponseText", VbMethod)
Text1.Text = aa
End Sub

参考资料: http://zhidao.baidu.com/question/350255425.html?oldq=1

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-01-20
展开全部
是否是unicode,还是普通的ascii的。你可以看看有没有自动的转码的函数,在MSDN上找找看,如果能找到是最简便的了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式