想得到lucida sans unicode字体的编码与其字符的对应关系,用了下面的代码:private sub command1_click()
 On Error Resume Next
Dim t As Long
For t = 1 To 100000
Rich1.SelFontName = "arial"
Rich1.SelFontSize = 12
Rich1.SelColor = vbBlack
Rich1.SelText = t & ":"
Rich1.SelFontName = "Lucida Sans Unicode"
Rich1.SelFontSize = 12
Rich1.SelColor = vbBlue
Rich1.SelText = ChrW(t) & vbCrLf
DoEvents
Form1.Caption = t
Next t
rich1.savefile app.path & "\1.doc"
end sub结果显示,很多字符并非以lucida sans unicode字体显示,请高手帮助诊断代码。谢谢!

解决方案 »

  1.   

    概念不清:
    1)Unicode(UTF-16) 为 2 字节编码,编码值不可能大于 &HFFFF&(65535)。
    2)在 &H0001&-&HFFFF& 范围内不是所有的值有效的 UTF-16 编码。
    3)也不是所有的有效编码都是可显示的。
      

  2.   

    问题是,通过系统附件中的字符映射表,可以明显看到字符,复制后在WORD程序中可以正常显示字符。我在循环中从1到10000,是故意把值扩大到100000,以尽量看到更多的字符。这不是影响到其无法显示的原因。请高手们帮助,如果让您解决,显示某字体的字符与其编码的对应关系,应该怎么写代码?谢谢!
      

  3.   

    楼上的哥哥们:通过系统附件中的字符映射表,可以明显看到字符,复制后在WORD程序中可以正常显示字符。直接从WORD中也可插入,从西文字体--国际音标扩展中,可以看到这些符号,插入到WORD文档中,复制到richtextbox中,用ascw()反取其值,竟不管是什么符号,都显示asc值为63,搞不明白。
      

  4.   

    63就是0x3f,也就是?,这表明ansi空间没有这个字符。