如何在 iTextSharp 中创建 Unicode 字符?
我正在尝试在 iTextSharp 中创建希腊字符 phi 以及许多其他字符。我设法通过输出来做到这一点:
Convert.ToChar(593)
当我查看 维基百科参考 时,可以表示 phi但是
U+03A6 (934 decimal)
U+03C6 (966 decimal)
U+03D5 (965 decimal)
U+0278 (632 decimal)
,当我尝试时,
Convert.ToChar(934)
Convert.ToChar(966)
Convert.ToChar(965)
Convert.ToChar(632)
我得到的是空白。
如何输出这些 Unicode 字符?
I am trying to create the Greek character phi in iTextSharp along with a number of other characters. I managed to do this by outputing:
Convert.ToChar(593)
When I look at the Wikipedia reference though, phi can be represented by
U+03A6 (934 decimal)
U+03C6 (966 decimal)
U+03D5 (965 decimal)
U+0278 (632 decimal)
However when I try
Convert.ToChar(934)
Convert.ToChar(966)
Convert.ToChar(965)
Convert.ToChar(632)
I get blanks.
How do I output these Unicode characters?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我强烈怀疑问题不在于字符值,而是用于显示该字符的字体编码。
如果给定的字体/编码无法显示给定的字符,您会得到一个空白。如有疑问,请使用 BaseFont.IDENTITY_H 编码。如果该字符(嗯......“字形”确实)存在于该字体中,您就可以访问它。您甚至可以使用
myBaseFont.charExists(int)
询问 BaseFont 是否可以显示给定字符(IIRC 考虑其字形和编码)。I strongly suspect that the problem isn't the character value, but the encoding of the font[s] used to display that character.
If a given font/encoding cannot display a given character, you get a blank. When in doubt, use BaseFont.IDENTITY_H encoding. If that character (well... "glyph" really) exists in that font, you'll have access to it. You can even ask a BaseFont if it can display a given character (IIRC taking its glyphs and encoding into account) with
myBaseFont.charExists(int)
.