各位大侠:能否提供一个函数让一个UTF-16格式文件正常显示D:\WZ.TXT

解决方案 »

  1.   

      既然要让一个UTF-16格式文件正常显示,那就要先搞懂UTF文件的BOM头,自己编写转换程序。别人的程序,不能只拿来用了就完了,既然要用就彻底把它搞懂。还是先来看看UTF文件BOM头:
      BOM(Byte Order Mark)是一个字符,它表明UNICODE文本的UTF-16,UTF-32的编码字节顺序(高字节低字节顺序)和编码方式(UTF-8,UTF-16,UTF-32,其中UTF-8编码是字节顺序无关的)。   编码方式                       文件头标志   
     UTF-8                         EF BB BF   
     UTF-16(Unicode Big Endian)    FE FF   
     UTF-16(Unicode Little Endian) FF FE   
     UTF-32(Unicode Big Endian)    00 00 FE FF   
     UTF-32(Unicode Little Endian) FF FE 00 00知道这些就好办了,你自己先读一下文件头,判断一下是哪一种编码,UTF-16有两种。然后参考下面我写的转换程序:
    Ansi,Unicode(little endian),Unicode big endian,UTF-8编码文件相互转换 
    http://blog.csdn.net/chenjl1031/archive/2010/12/07/6059767.aspx
      

  2.   

    InputB到一个Byte()里
    str=StrConv(bytearray,vbFromUnicode)
    试试
      

  3.   

    Dim f as new FileInfo("wz.txt")
    Dim fs as FileStream = f.OpenRead()
    Dim bt(0 to fs.Length-1) as Byte
    fs.Read(bt, 0, CType(fs.Length,Integer))
    fs.Close()
    IDC_NAME =System.Text.UnicodeEncoding.Unicode.GetString(bt, 0, 30).Trim()以上这段代码时VB.NET 写的。用这段代码就能正确转换。
    现在我VB.NET 不太懂,所以想变成VB ,不知道怎么写?