Sourcecode-Encoding

25/12/2008 - 18:18 von Michael Kolowicz | Report spam
Hallo,

ich möchte eine von mir erstellten Solution komplett durchsuchen und
verschiedene Änderungen vornehmen. Dazu gehört der Namespace und andere
Anwedungsspezifischen Anpassungen. (In VS2008 gibt es zwar die
Fin&Replace-Methode, aber ich möchte es aus verschiedenen Gründen durch eine
externe Anwendung machen).

Nun klappt auch alles ganz gut, bis auf die Sonderzeichen der deutschen
Sprache. Ich habe dann einwenig versucht das richtige Encoding anzugeben,
habe es aber nicht finden können.

Mein Code sieht nun so aus:

Private Sub ReplaceingInTextFile(ByVal LocalFileName As String, ByVal
OldString As String, ByVal NewString As String)

'Reading:
Dim myEncoding As System.Text.Encoding = System.Text.Encoding.Unicode

Dim myTextFile As New System.IO.StreamReader(LocalFileName,
myEncoding)
Dim strText As String = myTextFile.ReadToEnd()
myTextFile.Close()

'Replacing:
strText = Replace(strText, OldString, NewString)

'Writing:
Dim myTextStream As New FileStream(LocalFileName,
FileMode.OpenOrCreate, FileAccess.ReadWrite)
Dim myTextWriter As New System.IO.StreamWriter(myTextStream,
myEncoding)
myTextWriter.Write(strText)
myTextWriter.Flush()
myTextWriter.Close()

End Sub

Es wàre echt nett, wennmir jemand den passenden Encoding-Wert sagen könnte,
damit es auch mit den Sonderzeichen klappt

Gruß
Michael
 

Lesen sie die antworten

#1 Christoph Schneegans
25/12/2008 - 22:46 | Warnen spam
Michael Kolowicz schrieb:

Es wàre echt nett, wennmir jemand den passenden Encoding-Wert
sagen könnte, damit es auch mit den Sonderzeichen klappt



Fast alle Fàlle hast du mit UTF-8 oder Windows-1252 erschlagen. Mit

New System.IO.StreamReader(filepath, System.Text.Encoding.GetEncoding("Windows-1252"), detectEncodingFromByteOrderMarks:=True)

bzw.

New System.IO.StreamReader(filepath, System.Text.Encoding.Default, detectEncodingFromByteOrderMarks:=True)

wird ein StreamReader erzeugt, der automatisch die richtige
Codierung verwendet, wenn die UTF-8-codierten Dateien mit einem BOM
beginnen. In Visual Studio ist das üblicherweise der Fall.

<http://schneegans.de/expression-web...erung/> · Unicode in xWeb

Ähnliche fragen