namespace ConvertExample
{
class ConvertExampleClass
{
static void Main()
{
string unicodeString = "This string contains the unicode character Pi(\u03a0)";
// Create two different encodings.
Encoding ascii = Encoding.ASCII;
Encoding unicode = Encoding.Unicode;
// Convert the string into a byte[].
byte[] unicodeBytes = unicode.GetBytes(unicodeString);
// Perform the conversion from one encoding to the other.
byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
// 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.
char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
string asciiString = new string(asciiChars);
// Display the strings created before and after the conversion.
Console.WriteLine("Original string: {0}", unicodeString);
Console.WriteLine("Ascii converted string: {0}", asciiString);
}
}
}
我用以下方法转换
strFirstChar = System.Convert.ToString(arrBytes(0))
For i = 0 To 10
arrLineData(0) += System.Convert.ToString(arrLineData(i))
Next
最后生成结果依然是byte数字。
Dim s As String = "个"
Dim b As Byte()
b = Encoding.Utf8.GetBytes(s)
'把42 78作Unicode->Utf8的转换b:228 184 170
s = Encoding.Default.GetString(b)
'把228 184 170作Gb->Unicode的转换。s:"涓" ("涓"的Unicode编码为:147 109)
b = Encoding.Unicode.GetBytes(s)
'此时s的载体为147 109 0 0 <--问题已经出现了
b = Encoding.Default.GetBytes(s)
'把s的载体147 109 0 0作Unicode->Gb的编码转换b:228 184 0
s = Encoding.UTF8.GetString(b)
'把228 184 0作Utf8->Unicode的编码转换。s=""
b = Encoding.Unicode.GetBytes(s) 'b(0)=0 b(1)=0
'此时s的载体为0 0