2010-08-05 66 views
4

我試圖將匕首'†'符號寫入HTML頁面,該頁面被轉換爲PDF文檔,但是這在PDF上顯示爲''''如何將符號 - 「†」轉換爲HTML代碼?

我知道我需要使用HTML代碼爲這個符號,這是†

我已經成功完成了'€',但在這些情況下,我直接將代碼寫入HTML。在這種情況下,我正在從XML文件中讀取符號。當我檢查包含符號的變量的值時,它顯示爲'†'。

我要指出,我已經試過讀符號&從XML文件中的代碼,如下所示:

<fund id="777" countryid="N0" append="&#8224;" /> 

<fund id="777" countryid="N0" append="†" /> 

但兩者都存儲在變量作爲符號,當我將它們寫入頁面時,兩者都呈現爲' - '。此外,我試過以下內容:

string code = "&#8224;"; 
string symbol = "†"; 
string htmlEncodedCode = HttpUtility.HtmlEncode(code); 
string htmlEncodedSymbol = HttpUtility.HtmlEncode(symbol); 

tc.Text = fund.Name + code + " " + symbol + " " + 
    htmlEncodedCode + " " + htmlEncodedSymbol; 

但只有第一個作品。它在文檔中顯示爲:

FundName† †&#8224; †

有人可以建議我怎麼能得到這個工作?

更新:

@詹姆斯柯倫的回答下面是正確的。只是爲了清楚起見,我不得不把XML更改爲:

<fund id="777" countryid="N0" append="&amp;dagger;" /> 

,在我的C#:

tc.Text = fund.Name + append; 
+0

...使用有效的版本? – 2010-08-05 14:32:18

+0

@Jason,工作的版本是硬編碼到C#中的版本。這不是一個選項。 – DaveDev 2010-08-05 14:36:22

+0

http://en.wikipedia.org/wiki/Character_encoding – Incognito 2010-08-05 14:51:02

回答

5

該符號通常被稱爲「匕首」,並由html以實體表示: &dagger;&dagger;

+0

將這個存儲在XML文件中,作爲 '' 返回錯誤: '參考未申報的實體'dagger'.' ..我需要在XML中以不同的方式引用它嗎? – DaveDev 2010-08-05 14:33:16

+0

@DaveDev:不幸的是,XML不像HTML那樣理解相同的命名實體。但是,理論上你可以將它作爲'&匕首'返回,這將會(希望)起作用。 – Powerlord 2010-08-05 14:35:40

1

這是一個編碼問題。 「可能是UTF-8中匕首的Latin-1表示形式。嘗試將匕首從UTF-8轉換爲ISO-8859-1。

+2

或嘗試使用UTF-8渲染PDF。 – Powerlord 2010-08-05 14:36:52

+2

確實。並閱讀Joel Spolsky的「絕對最低限度的每個軟件開發人員,積極肯定Unicode和字符集(無藉口!)」:http://www.joelonsoftware.com/articles/Unicode.html真的! – 2010-08-05 14:53:59

+0

@R。 Bemrose更可能是一個HTML問題。 HTTP內容的默認編碼是ISO-8859-1。因此,如果HTML頁面的編碼未設置爲UTF-8,那麼PDF呈現器將使用該編碼。 – JeremyP 2010-08-05 15:03:03

0

隨着XML文件,你可能想要做的是沿着線的東西:

<fund id="777" countryid="N0" append="&amp;#8224;" /> 

的原因是,XML文件將解釋&amp;爲&符號,其餘作爲文字文本。因此,在你的HTML你會得到&#8224;,這應該是你。