求怎样打开这个XML文件,DW等用多个软件和方法打开都是乱码,用utf 8编码乱码-8等编码格式打开都是乱码,求问高手下图

1,xml文件中,有中文,为什么用utf-8或gbk编码,用记事本打开都不会看到乱码_百度知道
1,xml文件中,有中文,为什么用utf-8或gbk编码,用记事本打开都不会看到乱码
用记事本打开都不会看到乱码,用另外一种编码应该会看到的是乱码1,按道理如果用一种编码不会看到乱码,有中文,为什么用utf-8或gbk编码,xml文件中
提问者采纳
记事本会自动检查文件的编码,你强制要用gbk去显示utf和gbk都可以表示中文啊,用记事本打开的时候,并用对应的编码显示,所以没乱码但是如果一个utf8的文件
提问者评价
谢谢大家的回答
其他类似问题
按默认排序
其他3条回答
这是因为GBK和UTF-8中都包含中文和英文字符(中文和英文字符是GBK和UTF-8两个集合的交集)。有时要读取一些数据(比如文件流),发现内容变喽。但有时也有Bug,这时要小心处理了,如果使用二进制字段、打开Windows自带的记事本。
3,Windows的记事本就犯了个错误。给你举个例子步骤如下。Window的记事本可以根据内容自动选择编码,你就可以根据编码推算出能储存多少个汉字了! -------------------------------------------------------差点儿忘了说;GBK是UTF-8的子集,输入“联通”两个汉字(没有双引号)。设计数据库时、吓你一跳,UTF-8还包含了很多很多GBK中没有的字符(各国家的语言字符等)、保存,UTF-8是用三个字节储存一个字符,所以写程序时尽量使用UTF-8格式,GBK是用两个字节(双字节)储存一个字符。你做的测试中为什么没有出现乱码、再用记事本打开看看内容
1GBK和UTF-8都是字符的集合
参照理解:如果中国没有亿万富翁,那北京也没有亿万富翁如果北京有亿万富翁,那中国一定有亿万富翁
分页的话需要一个pagebean,在里面吧参数如每页显示数、第几页等传到这个bean里面再返回到页面,网上类似的参考程序也有,你自己看看吧,祝好! 如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!vaela 请参考
xml文件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁使用Beyond Compare合并含中文的XML文件造成乱码的问题总结_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
使用Beyond Compare合并含中文的XML文件造成乱码的问题总结
代​码​合​并​利​器
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢查看: 1363|回复: 3|
在线时间6 小时经验3 威望0 性别男最后登录注册时间阅读权限10UID2442752积分3帖子精华0分享0
EH新人, 积分 3, 距离下一级还需 17 积分
积分排行3000+帖子精华0微积分0
一个UTF-8格式的xml文件,里面内容有德文,初始文件可以用IE打开并正确显示,现在需要读取相应内容并生成新的xml文件,我写的宏代码能读取初始文件内容并在Immediate窗口正确显示出来,但是生成新的xml文件之后德文就变成乱码了,读取不了,如果将开头变成Print #1, &&?xml version=&&1.0&& encoding=&&gb2312&&?&&,德文变成了问号,请问如何才能将读取的内容以UTF-8格式写入新的文件啊,非常感谢!
为了测试方便,初始xml文件简化为(不知道能不能正确显示出来,不能的话就见附件):
&?xml version=&1.0& encoding=&utf-8&?&
&value&Markieren Sie dieses Kontrollk&stchen, um das Herunterladen der E/A-Variablen der CIP-Symbolik zu erm&glichen.&/value&
Sub test()
& & Dim fileName2 As String
& & fileName2 = &~\Desktop\UFT8\After.xml&
& & '第一次没有这个文件,注释掉
& & 'If InStr(fileName2, &After.xml&) & 0 Then Kill fileName2
& & Dim fileName As String
& & Dim objXML As Object
& & Set objXML = CreateObject(&MSXml2.DOMDocument&)
& & fileName = &~\Desktop\UFT8\ForTest.xml&
& & If Not objXML.Load(fileName) Then
& && &&&Err.Raise objXML.parseError.ErrorCode, , objXML.parseError.reason
& & End If
& & Dim point As Object
& & Set point = objXML.SelectSingleNode(&root&)
& & Dim attr As Object
& & Set attr = point.ChildNodes.Item(0)
& & '能正确显示
& & Debug.Print attr.Text
& & Dim newFile As String
& & newFile = &~\Desktop\UFT8\After.xml&
& & Open newFile For Append As #1
& & 'Print #1, &&?xml version=&&1.0&& encoding=&&utf-8&&?&&
& & Print #1, &&?xml version=&&1.0&& encoding=&&gb2312&&?&&
& & Print #1, &&root&&
& & Print #1, &&value&& & attr.Text & &&/value&&
& & Print #1, &&/root&&
& & Close #1
& & Dim objXML2 As Object
& & Set objXML2 = CreateObject(&MSXml2.DOMDocument&)
& & If Not objXML2.Load(fileName2) Then
& && &&&'utf-8时不能load, gb2312时能load,但是最后Immediate德文显示问号?
& && &&&Err.Raise objXML2.parseError.ErrorCode, , objXML2.parseError.reason
& & End If
& & Dim point2 As Object
& & Set point2 = objXML2.SelectSingleNode(&root&)
& & Dim attr2 As Object
& & Set attr2 = point2.ChildNodes.Item(0)
& & Debug.Print attr2.Text
& & End Sub
10:04 上传
下载次数: 28
558 Bytes, 下载次数: 28
在线时间6 小时经验3 威望0 性别男最后登录注册时间阅读权限10UID2442752积分3帖子精华0分享0
EH新人, 积分 3, 距离下一级还需 17 积分
积分排行3000+帖子精华0微积分0
帖子中xml的德文内容不能正确显示,以&和后面一个字母代替了,请各位大大拿附件中文件,谢谢!
在线时间6 小时经验3 威望0 性别男最后登录注册时间阅读权限10UID2442752积分3帖子精华0分享0
EH新人, 积分 3, 距离下一级还需 17 积分
积分排行3000+帖子精华0微积分0
本帖最后由 Mad★Frog 于
11:11 编辑
转了一圈,找到一个比较笨的解决方法:
Open方法会产生乱码,所以用MSXml2.DOMDocument方法代替,但是问题是这个生成xml文件不自动换行,只能再写一个函数来添加换行符,麻烦死了,不过暂时没找到更便捷的方法,如果有的话,请各位大大教我,谢谢!
[code=vb]Sub CreateXML()
& & Dim fileName As String
& & Dim objXML As Object
& & Set objXML = CreateObject(&MSXml2.DOMDocument&)
& & fileName = &E:\ForTest.xml&
& & If Not objXML.Load(fileName) Then
& && &&&Err.Raise objXML.parseError.ErrorCode, , objXML.parseError.reason
& & End If
& & Dim point As Object
& & Set point = objXML.SelectSingleNode(&root&)
& & Dim attr As Object
& & Set attr = point.ChildNodes.Item(0)
& & 'Debug.Print attr.Text
& & Dim strOutputPath As String
& & strOutputPath = &E:\outPut.xml&
& & Dim xmldoc, rootNode, Header, messageNode, typeNode As Object
& & Set xmldoc = CreateObject(&MSXML2.DOMDocument&)
& & xmldoc.PreserveWhitespace = True
& & Set rootNode = xmldoc.createElement(&root&)
& & Set xmldoc.DocumentElement = rootNode
& & Set Header = xmldoc.createProcessingInstruction(&xml&, &version='1.0' encoding='utf-8'&)
& & xmldoc.InsertBefore Header, xmldoc.ChildNodes(0)
& & Set messageNode = xmldoc.createElement(&value&)
& & rootNode.appendChild messageNode
& & messageNode.Text = attr.Text
& & xmldoc.Save strOutputPath
& & Call AddLineBreak(strOutputPath)
Sub AddLineBreak(file As String)
& & Dim readFile As String, FSO, openFile As Object& &
& & If Dir(file) = && Then MsgBox &Not found file!&, vbExclamation: Exit Sub
& & Set FSO = CreateObject(&Scripting.FileSystemObject&)& &&&
& & Set openFile = FSO.OpenTextFile(file, 1, -1)
& & readFile = openFile.ReadAll
& & openFile.Close
& & Dim valuePre, rootSuf As String
& & valuePre = &&root&& & vbCrLf & vbTab & &&value&&& &&&
& & rootSuf = &&/value&& & vbCrLf & &&/root&&
& & Dim newFile As String
& & newFile = Replace(readFile, &&root&&value&&, valuePre)
& & newFile = Replace(newFile, &&/value&&/root&&, rootSuf)
& & Set openFile = FSO.OpenTextFile(file, 2, -1)
& & openFile.writeline newFile
& & openFile.Close
& & Set FSO = Nothing
& & Set openFile = Nothing
在线时间5260 小时经验11677 威望8 最后登录注册时间阅读权限100UID331110积分13077帖子精华3分享0
管理以下版块
积分排行46帖子精华3微积分0
你可以把乱码的文件用adodb.stream转换成utf-8
积分≥4700即可申请
最佳会员奖章No.1
金牌优秀会员
金牌优秀会员奖章No.1
优秀会员奖章No.1
关注我们,与您相约微信公众平台!
Copyright 1999 - 2017 Excel Home. All Rights Reserved.本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!
Powered by
本站特聘法律顾问:徐怀玉律师 李志群律师 &&

我要回帖

更多关于 linux utf8乱码 的文章

 

随机推荐