欧元符号转义输出:?€

Euro symbol escape outputting: ?€

我试图用 \u20AC 在 C# 中转义欧元符号 ,但由于某种原因,结果是这样的:?€。那里有一个问号。我正在使用 PdfSharp 将代码转换为 PDF 文件,我需要使用欧元符号。

我试过这个:

但这两个选项都不起作用。

这是用欧元符号绘制 String 的代码:

gfx.DrawString("‎\u20AC " + myString, normalFont, textColor, 
               new XRect(0, 0, 0, 0), XStringFormats.Default);

注意: 其他符号如 % 有效

编辑:

应用 PDFSharpNovice 建议表后,我添加了这个

XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode,
    PdfFontEmbedding.Always);

这是新的输出:

问题不在于欧元符号。 您的字符串在引号和反斜杠之间包含一个零宽度的 Unicode 字符。当您使用 "cursor left" 或 "cursor right" 移动通过该行时,您会注意到它在此处需要两步。

不可见的零宽字符导致问号。删除它就大功告成了。

更新:"character" 是 e2 80 8e,从左到右标记。