如何避免 Graphics.MeasureString() 中零宽度连接器出现异常?

How can I avoid exceptions in Graphics.MeasureString() with bad zero width joiner?

当我调用 Graphics.MeasureString("?\u200d") 时,我得到一个 ExternalException "A generic error occurred in GDI+"。

\u200d 是 unicode "zero width joiner",我猜它使用不正确,但我无法控制用户提供的数据,但我想测量它以供显示。它在绘制时也会抛出异常。

我想我只需要解决这个问题,尽管它让我感到惊讶。

我注意到 Visual Studio 可以渲染字符串,也许是因为它不是建立在 GDI+ 之上?

有什么建议吗?

使用 TextRenderer.MeasureText(),并在 Graphics.DrawString vs TextRenderer.DrawText?Which can Deliver Better Quality

中查看优秀(长)答案