visualbasic
Goto Top

HTML-Sonderzeichen in ASCII-Sonderzeichen konvertieren

Hallo,
ich habe ein Programm zum Übersetzen geschrieben.
Jetzt stelle ich aber fest, dass wenn ich "Hallo" auf z.B. Russisch übersetzen möchte, folgendes rauskommt:
Алло"
. Normalerweise sollte folgendes kommen
привет (Priviet)
, was aber auch komisch ist, da ja das "&#1083" zweimal vorkommt...

Wenn man Diese Zeichenfolge in einer Gogglesuche verwendet, kommt das raus:
Алло

Zitat von @wiesi200:
Was auch "komisch" ist du kriegst 4 Zeichen raus, willst aber 6 haben.
Ist mir aber erstmals egal, sorry, denn im Russischen gibt es sowohl
привет
, als auch
Алло
für "hallo", wodurch ich jetzt schonmal weiß, dass
Алло"
für
Алло
steht.

Gibt es i-eine Möglichkeit, das umzuwandeln?

In CSharp geht es ja so
System.Web.HttpUtility.HtmlDecode(text)

Liegt es vielleicht daran, dass ich am "New WebClient" die Encoding auf
System.Text.Encoding.Default
gestellt habe? Habe es aner schon mit ASCII versucht; geht auch nicht...

// EDIT

Quelltext des Programms:
Public Class Form1
    Dim temp As String, eingang As String = "de", ausgang As String = "en"  

    Public Function TranslateText(ByVal TextToTranslate As String, ByVal lngInput As String, ByVal lngOutput As String) As String
        Dim result As String
        Dim url As String = [String].Format("http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}|{2}", TextToTranslate, lngInput, lngOutput)  
        Dim webClient As New Net.WebClient()
        webClient.Encoding = System.Text.Encoding.Default
        result = webClient.DownloadString(url)
        Dim match As String = "id=result_box"  
        Dim i As Integer = result.IndexOf(match) + 20
        Dim f As Integer = result.IndexOf(match) + 500
        result = Mid(result, i, f)
        result = Mid(result, 1, result.IndexOf("</div>"))  
        result = result.Replace("<span title=", "")  
        result = result.Replace("</span>", "")  
        result = result.Replace("&#39;", "'")  
        result = result.Substring(result.LastIndexOf(">") + 1)  
        Return result
    End Function

    Private Sub Input_Box_TextChanged() Handles Input_Box.TextChanged
        Select Case ComboBox1.SelectedItem
            Case "Deutsch"  
                eingang = "de"  
            Case "Englisch"  
                eingang = "en"  
            Case "Französisch"  
                eingang = "fr"  
        End Select

        Select Case ComboBox2.SelectedItem
            Case "Deutsch"  
                ausgang = "de"  
            Case "Englisch"  
                ausgang = "en"  
            Case "Französisch"  
                ausgang = "fr"  
        End Select

        Output_Box.Text = TranslateText(Input_Box.Text, eingang, ausgang)
    End Sub
End Class

Wie mach ich das? Nehme auch gern eine DLL, wenn nötig...
Freundliche Grüße Chris

Content-ID: 193039

Url: https://administrator.de/contentid/193039

Ausgedruckt am: 16.11.2024 um 01:11 Uhr

wiesi200
wiesi200 19.10.2012 um 20:47:31 Uhr
Goto Top
Hallo
Was auch "komisch" ist du kriegst 4 Zeichen raus, willst aber 6 haben.
Da hast du glaub ich schon mal ein anderes größeres Problem.
wiesi200
wiesi200 20.10.2012 um 07:47:12 Uhr
Goto Top
Wenn du wissen willst woran das es liegt, dann müsstest du eigentlich den Quelltext posten denn woher sollen wir wissen was du alles eingestellt hast. Mal abgesehen davon von dem in was du Programmierst? Vermutlich immer noch VB.Net?

Aber mit deinem

System.Web.HttpUtility.HtmlDecode(text)

Das ist ein Bestandteil des .Net Framework 4.5
Somit solltest du es innerhalb jeder .Net Sprache verwenden können.
Eben auch in VB.NET.

Für die genaue Syntax kannst du bei MSDN suchen.
visualbasic
visualbasic 20.10.2012 um 08:47:13 Uhr
Goto Top
Habs jetzt aktualisiert, was mach ich jetzt?
76109
76109 20.10.2012 um 10:45:17 Uhr
Goto Top
Hallo visualbasic!

Die dezimalen Zeichencodes (&#1040;&#1083;&#1083;&#1086;) aus dem kyrillischen Zeichensatz entsprechem dem Wort 'Алло'

Gruß Dieter
visualbasic
visualbasic 20.10.2012 um 11:34:00 Uhr
Goto Top
Zitat von @76109:
Hallo visualbasic!

Die dezimalen Zeichencodes (Алло) aus dem kyrillischen Zeichensatz entsprechem dem Wort
'Алло'
Danke, aber das stand 2 Stunden bevor du das geschriben hast, in meinem Beitrag...

Gruß Chris
visualbasic
visualbasic 26.12.2012 um 12:21:23 Uhr
Goto Top
Zitat von @wiesi200:
> System.Web.HttpUtility.HtmlDecode(text)
> 
Bei mir kommen nach "System.Web" nur ASP-Sachen