• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 769
  • Last Modified:

Odd Characters after using TextStream

Original Text: “C” Hold
Output Text: “C” Hold

also converts apostrophe's to ’

Filepath = Server.MapPath("testfolder/test.htm")

If FSO.FileExists(Filepath) Then
      Dim Contents
      Set TextStream = FSO.OpenTextFile(Filepath, ForReading, False, TristateUseDefault)            
            Contents = TextStream.ReadAll
            TextStream.Close
      Set TextStream = nothing
End If

I would like to know what is causing this and how to correct it.

Server: IIS6
Language: ASP (VBScript)
0
brian2k1
Asked:
brian2k1
  • 3
  • 3
1 Solution
 
brian2k1Author Commented:
I found a solution to this problem using VB.Net by adding the Encoding.Default to the code.

Is there a way to specify the enconding as I did in .Net in ASP (VBScript)?
0
 
deathtospamCommented:
Try either of these to see if there's any change in what is assigned to the [TextStream] variable:

<%
Set TextStream = FSO.OpenTextFile(Filepath, ForReading, False, -1)
Set TextStream = FSO.OpenTextFile(Filepath, ForReading, False, 0)
%>


-= DeathToSpam =-
0
 
deathtospamCommented:
Brian2k1 --

Here's a test script I wrote up, which returns [“C” Hold]:

<%
'// [FilePath] is assigned a valid path, relative or absolute.
Set FSO = Server.CreateObject("Scripting.FileSystemObject")

If FSO.FileExists(Filepath) Then
     '// Settings as you had: ForReading, Do Not Create, Open As ASCII
     Set TextStream = FSO.OpenTextFile(Filepath, 1, False, 0)          
          Contents = TextStream.ReadAll
          TextStream.Close
     Set TextStream = nothing
End If

Set FSO = Nothing
%>


-= DeathToSpam =-
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
brian2k1Author Commented:
That didn't work for me. Looks like the only thing that changed in the code you presented from my original is the "TristateUseDefault" to a 0 (zero). I also tried -1 which just turned it all into garbage.

If you found a reference link or something describing this problem please feel free to list it here.
0
 
deathtospamCommented:
Yeah, sorry -- that comment should have read "Settings as you had, with Open As ASCII".  

I was just following MSDN's documentation on the OpenTextFile method ( http://tinyurl.com/czoe7 ).  It only provides two options: opening a text file as Unicode (-1) or ASCII (0).  What was displayed when you ran my code?  Can you check the source code of the webpage and see if it's the same there?


-= DeathToSpam =-
0
 
brian2k1Author Commented:
The function listed below along with a charset of "utf-8" reproduces the same results as I got with .Net code.

http://www.motobit.com/tips/detpg_read-write-binary-files/

Function ReadTextFile(FileName, CharSet)
  Const adTypeText = 2
 
  'Create Stream object
  Dim BinaryStream
  Set BinaryStream = CreateObject("ADODB.Stream")
 
  'Specify stream type - we want To get binary data.
  BinaryStream.Type = adTypeText
 
  'Specify charset For the source text (unicode) data.
  If Len(CharSet) > 0 Then
    BinaryStream.CharSet = CharSet
  End If
 
  'Open the stream
  BinaryStream.Open
 
  'Load the file data from disk To stream object
  BinaryStream.LoadFromFile FileName
 
  'Open the stream And get binary data from the object
  ReadTextFile = BinaryStream.ReadText
End Function

so who knows the correct charset to get my text back the way it should be?
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now