Die Konvertierung von nicht-Unicode Unicode

Ich versuche konvertieren von nicht-Unicode-Zeichenfolge, wie dieses, '1ûº¤¡¾¢º¤ìñ©2' zu Unicode wie diese, 'ໃຊ້ໃນຄົວເຮືອນ', die in Laos. Ich habe versucht mit dem code unten und der Rückgabe Wert ist wie dieses, '??????'. Irgendeine Idee, wie kann ich konvertieren Sie die Zeichenfolge?

Public Shared Function ConvertAsciiToUnicode(asciiString As String) As String
    ' Create two different encodings.
    Dim encAscii As Encoding = Encoding.ASCII
    Dim encUnicode As Encoding = Encoding.Unicode

    ' Convert the string into a byte[].
    Dim asciiBytes As Byte() = encAscii.GetBytes(asciiString)

    ' Perform the conversion from one encoding to the other.
    Dim unicodeBytes As Byte() = Encoding.Convert(encAscii, encUnicode, asciiBytes)

    ' Convert the new byte[] into a char[] and then into a string.
    ' This is a slightly different approach to converting to illustrate
    ' the use of GetCharCount/GetChars.
    Dim unicodeChars As Char() = New Char(encUnicode.GetCharCount(unicodeBytes, 0, unicodeBytes.Length) - 1) {}
    encUnicode.GetChars(unicodeBytes, 0, unicodeBytes.Length, unicodeChars, 0)
    Dim unicodeString As New String(unicodeChars)

    ' Return the new unicode string
    Return unicodeString
End Function
  • Funktioniert der code für gewusst Wie: Konvertieren Zwischen Legacy-Kodierungen und Unicode (C# Programming Guide) an msdn.microsoft.com/en-us/library/cc488003.aspx helfen.
  • Sehen Fragezeichen (?) in der Regel bedeutet, dass Ihr Charakter Ausrichtung ausgeschaltet ist. Einige Unicode-Zeichen drei Byte lang. Nicht mit UTF8 oder andere Codierungen arbeiten?
  • Wenn du einen string hast, dann ist es nicht ASCII. Strings in .NET sind immer UTF-16. Wo bekommt man den ASCII-codierte Daten aus? Lest es nicht als string, das ist ein Fehler. Sie benötigen zum speichern der ASCII-Daten in ein byte-array. Aber ich würde Fragen, warum Sie ASCII-Daten in den ersten Platz, da die Informationen in es war eindeutig nicht codiert in ASCII.
  • "1ûº¤¡¾¢º¤ìñ©2" ist nicht ASCII. Wie hast du es bekommen?
InformationsquelleAutor Fire Hand | 2012-07-13
Schreibe einen Kommentar