查考一下: Public Class CMain Public Shared Function Big5ToGb2312(ByVal ba() As Byte) As String Dim gb2312 As System.Text.Encoding = System.Text.Encoding.GetEncoding("GB2312") Dim big5 As System.Text.Encoding = System.Text.Encoding.GetEncoding("BIG5") ba = System.Text.Encoding.Convert(big5, gb2312, ba) Dim s As String s = gb2312.GetString(ba) s = s.TrimEnd(New Char() {ControlChars.NullChar}) s = StrConv(s, VbStrConv.SimplifiedChinese) Return s End Function Public Shared Function Gb2312ToBig5(ByVal s As String) As Byte() s = StrConv(s, VbStrConv.TraditionalChinese) Dim gb2312 As System.Text.Encoding = System.Text.Encoding.GetEncoding("GB2312") Dim big5 As System.Text.Encoding = System.Text.Encoding.GetEncoding("BIG5") Dim ba() As Byte = gb2312.GetBytes(s) ba = System.Text.Encoding.Convert(gb2312, big5, ba) Return ba End Function End Class
System.Text.Encoding.GetEncoding("big5").GetBytes(str);
来获取BIG5编码,获取到byte数组当中,
然后用
System.Text.Encoding.GetEncoding("gb2312").GetBytes(bytes);
来转化获取到的BIG5编码,然后再用
String Str=Strings.StrConv(big5,VbStrConv.SimlifiedChinese,0);
来把获取到的繁体中文转成简体中文。
Public Class CMain
Public Shared Function Big5ToGb2312(ByVal ba() As Byte) As String
Dim gb2312 As System.Text.Encoding = System.Text.Encoding.GetEncoding("GB2312")
Dim big5 As System.Text.Encoding = System.Text.Encoding.GetEncoding("BIG5")
ba = System.Text.Encoding.Convert(big5, gb2312, ba)
Dim s As String
s = gb2312.GetString(ba)
s = s.TrimEnd(New Char() {ControlChars.NullChar})
s = StrConv(s, VbStrConv.SimplifiedChinese)
Return s
End Function Public Shared Function Gb2312ToBig5(ByVal s As String) As Byte()
s = StrConv(s, VbStrConv.TraditionalChinese)
Dim gb2312 As System.Text.Encoding = System.Text.Encoding.GetEncoding("GB2312")
Dim big5 As System.Text.Encoding = System.Text.Encoding.GetEncoding("BIG5")
Dim ba() As Byte = gb2312.GetBytes(s)
ba = System.Text.Encoding.Convert(gb2312, big5, ba)
Return ba
End Function
End Class
FileStream Fs=new FileStream(@"c:\text.txt",FileMode.Open);
BinaryReader Br=new BinaryReader(Fs,Encoding.Default);
/*就是在上面第二个参数Encoding.Default处有很多选择,如有Ascii,Unicode,Default,utf-8,utf7,GetEncodeing等,是不是在这里就应先做一些处理?然后再*/
byte[] Origin=Br.ReadBytes(4096);
比如说获取流时:
StreamReader Sr=new StreamReader(StreamName,Encoding.GetEncoding("BIG5")) //一定要说明原始流的编码.然后:
String Temp=Sr.ReadToEnd().ToString();
String VaildStr=Microsoft.VisualBasic.StrConv(Temp,VbStrConv.SimplifiedChinese,0);//就ok!