2011-04-05 12 views
0

我有一個文本文檔,它是被許可人的名單。我正在循環這個文檔來創建這個數據的html表格。我遇到過帶有非標準字符的名字。使用.net將字符轉換爲html等效品

這是其中之一

艾梅

我試圖通過下面的函數運行所有的投入,但是當它遇到上述字符它不會取代它。

Function ReplaceBadCharacters(ByVal input As String) As String 
    Return input.Replace(Chr(233), "é") 
End Function 

我該如何用html等價物替換每個字符?

EDIT

當調試上述功能它顯示了輸入作爲艾梅[]和不艾米。

在Chrome中,它看起來像這樣艾梅

+0

然後你的編碼是錯誤的。 – SLaks 2011-04-05 14:28:42

+0

當我在記事本++中打開文檔時,它將編碼顯示爲ANSI。當我在記事本++中將其更改爲UTF-8時,它顯示字符爲'xE9' – guanome 2011-04-05 14:34:36

+0

聽起來像é可能是不同的字形。你的名冊中有哪些類型的文本文件? .docx,.doc,.pdf等可能會爲非標準字符插入非標準字形。如果它是.txt或任何基於ASCII的文檔,請檢查編碼。您可能會以UTF8格式讀取文件,並且文檔爲UTF ##,反之亦然。另外,請確保在讀取文件時指定編碼類型。 – 2011-04-05 14:36:14

回答

1

您不必這樣做。
只要你的頁面被編碼爲UTF8,這些字符就可以正常工作。

但是,您確實需要撥打Server.HtmlEncode來轉義HTML特殊字符。
(除非你打印的<%: %>塊或剃刀@塊,它逃脫他們爲你的字符串)

+0

我在頭部添加了帶有charset = UTF-8的元標記,但它仍然不顯示。我也試過server.htmlencode,沒有運氣。輸入文件的格式不正確嗎? – guanome 2011-04-05 14:30:00

+0

嘗試使用'Page'聲明中的'Encoding'屬性。 – SLaks 2011-04-05 14:32:04

+0

'Encoding'是否需要在vb或aspx上? – guanome 2011-04-05 14:36:29

0

E是在當前的ASCII字符集。如果您將其寫入HTML,它會正確地呈現(就像正確的,當你看這個頁面是如何它顯示在瀏覽器中)

,但如果你要替換它的所有實例,用這個來代替&eacute;

input.Replace("é", "&eacute;") 
+0

我在原帖中添加了一個編輯。它從來沒有看到實際的人物。 – guanome 2011-04-05 14:27:47

相關問題