2016-04-28 34 views
1

我有来自各种来源和各种欧洲语言的DXF文件,而且我在将源文件读入我的应用程序时遇到问题。 DXF文件是一个文本文件,可以由许多类型的CAD或类似软件生成。整个文件被读入并保存到一个数组中,组代码在数组的第一列和第二列的数据值中。所以当我处于调试模式时,我可以看到数组中的数据值。vb .net 2015编码无法显示特殊字符

我已经尝试使用:

For Each sLine In File.ReadLines(strOrgDxfFileName, System.Text.Encoding.UTF32) 

For Each sLine In File.ReadLines(strOrgDxfFileName, System.Text.Encoding.Default) 

我使用的是计算机与德国操作系统,所以我会想象使用.DEFAULT时候会拿起德语代码页,因此德国特殊字符äÄöÖüÜß。但是,当使用来自不同来源的两个文件时有时会起作用,有时不起作用

文件1使用.Default给出了“höhenmäßigangepaßt”,这是正确的。 使用.UTF8的文件1给出了“h henm igangepa t”,这是不正确的。

文件2使用.Default给出了“Brückenstraße”,这是不正确的。 使用.UTF8的文件2给出了“Brückenstraße”,这是正确的。

我无法找到正确读取特殊字符的可靠方法。我也将获得其他语言的DXF文件,因此无论语言如何,无论DXF创建的操作系统或读取计算机的操作系统如何,始终获取特殊字符都非常重要。

我一直在为此奋斗了几天,但没有得到任何地方。任何人都可以提供建议吗?

+0

一种 “DXF文件文本编码” 搜索给出了一些建议。 –

+0

我在发布之前就已经这样做了,只是重复了一遍,我发现对我的情况没有任何用处。不管怎么说,还是要谢谢你。 – BenS

回答

-2

试试这个,如果工作让我知道

Encoding.ASCII.GetString(Encoding.UTF8.GetBytes(yourString)) 

或尝试这样

Dim converted as Byte() = Encoding.Convert(utf8, Encoding.UTF8, _ 
              Encoding.GetEncoding(28591)) 

如果我能得到你很好,我还以为你正在尝试做的是,您正在尝试读取DXF Auto Card File:我会建议您使用autocad库或第三方库 步骤来实现它: 1. v isit此链接:Link to download DXF Library并搜索netDxf 1.1.2并下载它。 2.import库到您的项目并使用这个和平的代码:

public static void Main() 
    { 
     // by default it will create an AutoCad2000 dxf version 
     DxfDocument dxf = new DxfDocument(); 
     // add your entities here 
     dxf.AddEntity(entity); 
     // save to file 
     dxf.Save(filename); 

     // load file 
     DxfDocument dxfLoad = DxfDocument.Load(filename); 
    } 

,让我知道如果解决你的问题。

,如果你在任何语言需要它的原始文件试试这个:

Dim strTest = File.ReadAllText("your_german_file.txt", System.Text.Encoding.Default) 

Dim reader As New StreamReader("C:\example.txt", System.Text.Encoding.Default) 

因为什么@Joel Coehoorn说

+0

第一个代码示例将整个文件作为一行问号返回。但我不明白,当我使用下面的代码时,我实际上得到了文件中的行数: 'Dim lines As New List(Of String) 如果strOrgDxfFileName <>“”Then lines.AddRange(ReadAllLines strOrgDxfFileName)) End If lLines = lines.Count' 在你的第二行代码中,我必须在System.Text的Encoding前加上“UTF8”。从DXF文件读入的字符串在哪里? – BenS

+0

好的你用于开发的环境名称是什么Sir – Michael

+0

我刚刚编辑了我的答案 – Michael