all groups > vb.net controls > june 2007 >
You're in the

vb.net controls

group:

German Characters in textbox



Re: German Characters in textbox Göran_Andersson
6/2/2007 12:00:00 AM
vb.net controls: [quoted text, click to view]

It sounds like it's a problem with encoding. You are probably either
using an encoding that doesn't support the characters, or using
different encodings for saving and retrieveing the text.

Where do you save it? Text file? Database? Left pocket?

Does the value change when you save it or when you retrieve it?

--
Göran Andersson
_____
German Characters in textbox Martin
6/2/2007 1:28:57 AM
Hi all,

When a user enters a german character in a textbox (such as ö ä ü ß) and I
try to save it, these characters get converted to a different character.
How can I prevent this?

Tia,
Martin
Re: German Characters in textbox Martin
6/2/2007 10:30:27 AM
Hi again,

The code Im using to read the file is I think pretty straightforward:

Private Sub DoOpenFile(ByVal ThisFile As String)
Dim Line As String

Try
Dim sr As System.IO.StreamReader = New
System.IO.StreamReader(ThisFile, True)
Line = sr.ReadLine()
sr.Close()
Catch Ex As Exception
MsgBox("Error reading file" & Chr(13) & Chr(13) & Ex.Message,
MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, "Error")
Exit Sub
End Try

Line = DoFormatLine(Line)
FillEditor(Line)
FileName = ThisFile
Editor.ReadOnly = False
Me.Text = "Editing " & FileName
End Sub

The text is created in an editor (MultiEdit) and looks like this:

FTX+AAK+1++Es bestehen Vereinbarungen, aus denen sich nachträgliche
Minderungen :des Entgelts ergeben können.+DE

When I open this in my app, it suddenly looks like this:

FTX+AAK+1++Es bestehen Vereinbarungen, aus denen sich nachtr�gliche
Minderungen :des Entgelts ergeben k�nnen.+DE

After your message I added the TRUE parameter in the streamreader (detect
encoding) and set the form's language to German... To no effect.

Tia,
Martin




[quoted text, click to view]
Re: German Characters in textbox Martin
6/2/2007 10:50:08 AM
Hi Herfried,

Thanks a lot. Adding the parameter System.Text.Encoding.Default did the
trick!
However, I also do a rewrite with the SreamWriter. I assume I need to add
the same parameter there?

Martin


[quoted text, click to view]
Re: German Characters in textbox Martin
6/2/2007 6:20:20 PM
Hi Göran,

Thanks for your reply. I'm saving the texts to a text (ascii) file. I'm not
using any special encoding, in fact I don't have any experience using other
character sets, so I am not aware of how to choose a special kind of
encoding... Any help would be greatly appreciated.

Tia,
Martin


[quoted text, click to view]

Re: German Characters in textbox Göran_Andersson
6/2/2007 7:01:51 PM
[quoted text, click to view]

A file doesn't contain characters, it contains bytes, so every text file
uses some encoding to represent the characters as bytes.

The ASCII encoding doesn't support any special characters. You should
use the UTF-8 encoding. This is however the default for the methods in
the framework when you don't specify any encoding, so you have to have
done something to use some other encoding.

What does your code look like?

--
Göran Andersson
_____
Re: German Characters in textbox Herfried K. Wagner [MVP]
6/2/2007 7:35:36 PM
"Martin" <x@y.com> schrieb:
[quoted text, click to view]

ASCII is a 7-bit US encoding that doesn't support any umlauts.

Thus you have to use another encoding. 'StreamWriter' uses UTF-8 by default
which can contain umlauts. So, do not pass an ASCII encoding object to the
constructor.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>
Re: German Characters in textbox Herfried K. Wagner [MVP]
6/2/2007 7:38:26 PM
"Martin" <x@y.com> schrieb:
[quoted text, click to view]

So, you are not writing the data using .NET's 'StreamWriter' at all. Most
likely the other application stores the file using the Windows ANSI encoding
with the system's default codepage. In order to read the file, pass
'System.Text.Encoding.Default' to the 'StreamReader''s constructor or
determine the encoding for a certain codepage using 'Encoding.GetEncoding'.

[quoted text, click to view]

Well, detecting the encoding isn't always possible because byte sequences
contained in the file may be valid for different encodings.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>
Re: German Characters in textbox Herfried K. Wagner [MVP]
6/2/2007 8:09:23 PM
"Martin" <x@y.com> schrieb:
[quoted text, click to view]

Yes.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>
Re: German Characters in textbox Göran Andersson
6/2/2007 10:02:58 PM
[quoted text, click to view]

Do you specify any encoding when you save the file? In the Windows
Notepad you do, I doubt that a more advanced editor would completely
lack this feature.

Save the file as UTF-8, and you should have no problems reading it.

--
Göran Andersson
_____
Re: German Characters in textbox Cor Ligthert [MVP]
6/3/2007 12:00:00 AM
Martin,

I have made a simple program to test it. (Dutch settings)

Imports System.io
Public Class Form1
Private Sub Form1_Load(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Text = "ö ä ü ß"
Using sw As New StreamWriter("C:\TestFile.txt")
sw.Write(TextBox1.Text)
sw.Close()
End Using
Try
Using sr As New StreamReader("C:\TestFile.txt")
TextBox2.Text = sr.ReadToEnd
sr.Close()
End Using
Catch Ex As Exception
MessageBox.Show(Ex.Message)
End Try
End Sub
End Class

This gives in textbox2 the same characters as in textbox1

Probably have you played a little to much with the language settings of your
system.

Cor


"Martin" <x@y.com> schreef in bericht
news:OwpQTAPpHHA.4496@TK2MSFTNGP06.phx.gbl...
[quoted text, click to view]

AddThis Social Bookmark Button