我想非Unicode字符串轉換這樣,'¹ûº¤¡¾¢º¤ìñ©2'爲Unicode這樣,'ໃຊ້ໃນຄົວເຮືອນ'這是在老撾。我試着用下面的代碼,它的返回值是這樣的,'??????'。任何想法如何轉換字符串?轉換非Unicode爲Unicode
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
有關*如何在傳統編碼和Unicode(C#編程指南)*之間進行轉換的代碼,請訪問http://msdn.microsoft.com/en-us/library/cc488003.aspx幫助。 – AMissico 2012-07-13 06:43:00
看到問號(?)通常表示您的角色對齊關閉。一些Unicode字符可以是三個字節長。使用UTF8或其他編碼工作嗎? – AMissico 2012-07-13 06:50:10
如果你有一個*字符串*,那麼它不是ASCII。 .NET中的字符串*總是* UTF-16。你從哪裏得到ASCII編碼的數據?不要把它看作字符串,這是一個錯誤。您需要將ASCII數據存儲在字節數組中。但我會質疑爲什麼你有ASCII數據,因爲其中的信息顯然不是用ASCII編碼的。 「 – 2012-07-13 06:55:16