FineReport在页面上不能显示欧元符号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FineReport在页面上不能显示欧元符号相关的知识,希望对你有一定的参考价值。

设计时可以显示€ 可是预览时在页面上显示? 怎么办

参考技术A 把字符编码改成支持UNICODE的试试看!追问

请问你知道怎么改么

如何在文本框中插入符号(英镑、欧元、版权)

【中文标题】如何在文本框中插入符号(英镑、欧元、版权)【英文标题】:How to insert a Symbol (Pound, Euro, Copyright) into a Textbox 【发布时间】:2013-09-08 18:40:47 【问题描述】:

我可以使用带有数字键盘的 Alt 键来键入符号,但是如何以编程方式将符号(英镑、欧元、版权)插入文本框?

我有一个配置屏幕,所以我需要动态创建 \uXXXX's。

【问题讨论】:

【参考方案1】:

在 C# 中,Unicode 字符文字 \uXXXX(其中 X 是十六进制字符)将允许您指定 Unicode 字符。例如:

\u00A3 是英镑符号,£。 \u20AC 是欧元符号,€。 \u00A9 是版权符号,©。

您可以像使用字符串中的任何其他字符一样使用这些 Unicode 字符文字。

例如,"15 \u00A3 per item" 将是字符串“15 £ per item”。

您可以像使用任何其他字符串一样将这样的字符串放入文本框中。

注意:您也可以从网站上复制 (Ctrl+C) 符号,例如 Wikipedia (Pound sign),然后将 (Ctrl+V) 直接粘贴到 C# 源代码文件中的字符串文字中。 C# 源代码文件本机使用 Unicode。这种方法完全让您不必知道所需符号的四个十六进制数字。

为了与上面的示例平行,您可以创建与 "15 £ per item" 相同的字符串文字。

编辑:如果你想动态地从它的十六进制字符串创建Unicode字符,你可以使用这个:

public static char HexToChar(string hex)

    return (char)ushort.Parse(hex, System.Globalization.NumberStyles.HexNumber);

例如,HexToChar("20AC") 将为您提供欧元符号。

如果你想动态地做相反的操作:

public static string CharToHex(char c)

    return ((ushort)c).ToString("X4");

例如CharToHex('€') 会得到你"20AC"

ushort 的选择对应于char 可能值的范围,显示为here。

【讨论】:

让我试试这个。不,我需要动态创建它\uXXXX。当我尝试这个时:symbolSyntax = "\u" + symbolSyntax 它需要我逃离 \u @JeremyThompson 你真的想像那样动态地从符号十六进制创建角色吗?如果是这样,我可以更新答案以包含它。 @JeremyThompson - 问题中没有提到从十六进制动态创建符号,如果您下次想更清楚的话。 我没时间测试,不过试试:(Char)Convert.ToInt32("20AC",16) 感谢你们的帮助,我相信这对以后的其他人会有所帮助【参考方案2】:

我不敢相信这在互联网上很难找到!

对于未来的开发人员,如果你有 unicode 字符,它很容易做到。例如:

C#:

var selectionIndex = txt.SelectionStart;

string copyrightUnicode = "00A9";
int value = int.Parse(copyrightUnicode, System.Globalization.NumberStyles.HexNumber);
string symbol = char.ConvertFromUtf32(value).ToString();

txt.Text = txt.Text.Insert(selectionIndex, symbol);
txt.SelectionStart = selectionIndex + symbol.Length;

VB.Net

Dim selectionIndex = txt.SelectionStart

Dim copyrightUnicode As String = "00A9"
Dim value As Integer = Integer.Parse(copyrightUnicode, System.Globalization.NumberStyles.HexNumber)
Dim symbol As String = Char.ConvertFromUtf32(value).ToString()

txt.Text = txt.Text.Insert(selectionIndex, symbol)
txt.SelectionStart = selectionIndex + symbol.Length

【讨论】:

以上是关于FineReport在页面上不能显示欧元符号的主要内容,如果未能解决你的问题,请参考以下文章

当前文化 - 显示欧元符号 (€) 而不是 EUR 字符串

欧元符号 HTML

如何解析带有欧元货币符号的数字字符串? [复制]

页面符号(转)

Confluence 6 € 欧元字符集不能正常显示

Confluence 6 € 欧元字符集不能正常显示