Hej! Det finns två sätt att spara en fil på. Windows har möjlighet att göra detta på två sätt, antingen ansi eller UTF (om jag inte minns fel). Första kontrollen är att använda notepad, wordpad eller liknande och öppna filen. Ser du åäö är allt ok, om inte - spara om filen och välj ett annat format och testa igen med din applikation. Prova att själv ange vilken encoding du vill använda. Exempel: Jag har nu testat alla encodnings men ingen skriver ut ÅÄÖ.. Du kan ju testa att i web.config filen för den webb du arbetar med sätta en egen globalization, det brukar göra susen. Problemet ligger inte i vs - problemet är troligen mer hur filen har skapats. Ta notepad och skriv åäö i en fil och spara, accessa sedan den och se om det fungerar i första läget. Robert.problem med ÅÄÖ (åäö)
Jag har ett problem, när jag ska läsa samt skapa filer med System.IO så kommer inte ÅÄÖ med, när jag skapar filer med ändelsen .asp (alla ändelser utom .txt) så ersätts ÅÄÖ med konstiga tecken, jag måste ha ÅÄÖ som vanligt i filerna då dessa filer inte ska läsar från mina script, därför kan jag inte replaca..
Här är koden för att läsa en fil:
[kod]
Try
' Create an instance of StreamReader to read from a file.
Dim sr As StreamReader = New StreamReader("TestFile.txt")
Dim line As String
' Read and display the lines from the file until the end
' of the file is reached.
Do
line = sr.ReadLine()
Console.WriteLine(Line)
Loop Until line Is Nothing
sr.Close()
Catch E As Exception
' Let the user know what went wrong.
Console.WriteLine("The file could not be read:")
Console.WriteLine(E.Message)
End Try
[/kod]
Och här är koden för att lägga till en fil:
[kod]
strName = Request.Form("name")
strPath = Request.Form("path")
strContent = Request.Form("content")
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
IF not FSO.FileExists(Server.MapPath(strPath) & "/" & strName) Then
Set objFIle = FSO.CreateTextFile(Server.MapPath(strPath) & "/" & strName, True)
objFile.Write(strContent)
objFile.Close : Set ObjFile = Nothing
strRedirect = "?action=showFile&file="& strPath & strName
Else : strRedirect = "Exist.asp?do=FileExist"
End IF
Set FSO = Nothing
Response.Redirect(strRedirect)
[/kod]
Jag har ändå denna kod i min web.config:
[kod]
<system.web>
<globalization
culture = "sv-se"
uiCulture = "sv"
requestEncoding="utf-8"
responseEncoding="utf-8"
/>
</system.web>
[/kod]
Så vet ni varför ÅÄÖ inte fungerar?Sv: problem med ÅÄÖ (åäö)
Sv: problem med ÅÄÖ (åäö)
Dim streamWr As New IO.FileStream("c:\test.txt", IO.FileMode.CreateNew)
Dim BinWr As New IO.BinaryWriter(streamWr, System.Text.Encoding.UTF8)
Dim Content As String = "En svensk text med å ä och ö"
BinWr.Write(Content)
BinWr.Close()
streamWr.Close()Sv: problem med ÅÄÖ (åäö)
Hur ska jag göra?Sv: problem med ÅÄÖ (åäö)
<code>
<system.web>
...
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="sv-SE" />
...
</system.web>
</code>
Sv: problem med ÅÄÖ (åäö)
Om det funkar, ta då via notepad och öppna filen, spara ner med utf-8 formatet och testa den.Sv: problem med ÅÄÖ (åäö)
Du sa när du skriver filen som asp. Menar du då nät du öppnar den i notepad eller via webben?
För ASP .Net och ASP har inte smma tecken koder. Det blir krockar.
Du kan om det nu är ovan sätt du gör, sätta in meta taggar i asp filen som säger att htmlen är en viss content. Detta kan lösa ditt problem. Du kan även istället för UTF-8 i web.config sätta en ISO.
typ: ISO-8859-15
För att se om det kan hjälpa till.
Mvh Johan