none
C#,winform通过16进制编码显示字库内容 RRS feed

  • 问题

  • 需求如下:
    现在已知十六进制编码,如:3478ABEC,.ttf格式的字库。
    如何通过编码、字库得到对应的字符?
    例如:3478在字库中对应“中”字,ABEC在字库中对应“人”字,则在客户端显示"中人"。

    问题补充:

    我们的项目中,有两种情况。一种是默认编码,如UTF8,UNICODe,windows1251等,这部分编码我们可以直接用Encoding类将十六进制编码转换为字符。但是,还有一种情况是某些字符在系统中无法显示,只有通过自己构建自定义字库,上传到c:\windows\Fonts目录下。我们现在要根据自定义字库名,以及编码、偏移得到此编码对应的字符。


    2012年3月5日 12:31

答案

  • 你好, 首先你需要确认你的十六进制数字的编码方式,UTF8 或者Unicode都是国际规范,它指的是如何编码“人"字,从而得到ABEC,这个ABEC在任何字体中都应该表示人字,但当以不同的字体显示时,看得人字 应该是不一样的,这就是字体风格。

    在你的这个问题中, 我猜想你应该是自己设计了一些艺术字,然后想 显示这些艺术字, 这样的话, 你可以 通过 你的字符编码集找出这些字符串http://msdn.microsoft.com/zh-cn/library/khac988h.aspx 然后用drawString方法以你的字体去显示这些字符串。  

    还有就是你可以添加字符集到你的系统中,当我们添加完中文字符集,我们就能看到网页上的中文,而不是乱码,当我们添加完 你自定义的字符集,我们就能看到你自定义的字符,而不是无法显示的字符。  

    希望有用。


    Mike Feng
    MSDN Community Support | Feedback to us
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年3月6日 16:23
    版主

全部回复

  • 此问题已在博客园、csdn等论坛提问,均无合适的答案。
    2012年3月6日 1:23
  • 你好, 首先你需要确认你的十六进制数字的编码方式,UTF8 或者Unicode都是国际规范,它指的是如何编码“人"字,从而得到ABEC,这个ABEC在任何字体中都应该表示人字,但当以不同的字体显示时,看得人字 应该是不一样的,这就是字体风格。

    在你的这个问题中, 我猜想你应该是自己设计了一些艺术字,然后想 显示这些艺术字, 这样的话, 你可以 通过 你的字符编码集找出这些字符串http://msdn.microsoft.com/zh-cn/library/khac988h.aspx 然后用drawString方法以你的字体去显示这些字符串。  

    还有就是你可以添加字符集到你的系统中,当我们添加完中文字符集,我们就能看到网页上的中文,而不是乱码,当我们添加完 你自定义的字符集,我们就能看到你自定义的字符,而不是无法显示的字符。  

    希望有用。


    Mike Feng
    MSDN Community Support | Feedback to us
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年3月6日 16:23
    版主