Wie zeige ich ein eingetragenes Warenzeichen Symbol (®) VB.NET verwenden?
-
26-09-2019 - |
Frage
Ich habe über Unterstützung eines Antrags bei der Firma, die ich Arbeit gemacht. Ganz plötzlich will der Kunde in der Lage sein eine eingetragene Marke in einem Namensfeld einzugeben. Das Symbol, mit ALT + 0174, gespeichert wird richtig, aber die App ist kodiert, es nicht richtig. Im Wesentlichen ist dies, was ich tue:
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Dim ms As New MemoryStream
Dim xml_text_writer As New XmlTextWriter(ms, _
System.Text.Encoding.UTF8)
xml_text_writer.Formatting = Formatting.Indented
xml_text_writer.Indentation = 4
xml_text_writer.WriteStartDocument(True)
xml_text_writer.WriteStartElement("Employees")
MakeEmployee(xml_text_writer, txtFName.Text, txtLName.Text, 11111)
xml_text_writer.WriteEndElement()
xml_text_writer.WriteEndDocument()
xml_text_writer.Flush()
ms.Flush()
ms.Position = 0
Dim b(CInt(ms.Length) - 1) As Byte
ms.Read(b, 0, CInt(ms.Length))
ms.Close()
Dim strReturn As String = System.Text.ASCIIEncoding.ASCII.GetString(b)
If strReturn.StartsWith("???", StringComparison.CurrentCultureIgnoreCase) Then
strReturn = strReturn.Substring(3)
End If
txtName.Text = strReturn
End Sub
Private Sub MakeEmployee(ByVal xml_text_writer As _
XmlTextWriter, ByVal first_name As String, ByVal _
last_name As String, ByVal emp_id As Integer)
xml_text_writer.WriteStartElement("Employee")
xml_text_writer.WriteStartElement("FirstName")
xml_text_writer.WriteString(first_name)
xml_text_writer.WriteEndElement()
xml_text_writer.WriteStartElement("LastName")
xml_text_writer.WriteString(last_name)
xml_text_writer.WriteEndElement()
xml_text_writer.WriteStartElement("EmployeeId")
xml_text_writer.WriteString(emp_id.ToString)
xml_text_writer.WriteEndElement()
xml_text_writer.WriteEndElement()
End Sub
Der Ausgang ich von diesem Code erhalten, ist dies:
John Schmied ?? 11111
Alles ist in Ordnung, mit Ausnahme des „??“ nach „Smith“ sollte „®“. Was ist der beste Weg, wenn überhaupt, richtig das Symbol angezeigt wird?
Lösung
Dim strReturn As String = System.Text.ASCIIEncoding.ASCII.GetString (b)
Sie codiert, um die XML in UTF-8, tun Sie es nicht zurück, als ASCII lesen. Hier finden Sie alle Sonderzeichen verlieren, die nicht codiert werden kann. Fix:
Dim strReturn As String = System.Text.Encoding.UTF8.GetString(b)