2011-04-18 84 views
1

我正在嘗試使用不同的HTML編碼器在我的Java Web應用程序中對用戶提供的值進行編碼。我編寫了一個小樣本應用程序,將不同編碼器的結果打印到網站上。這工作到目前爲止沒有任何問題。在瀏覽器中顯示HTML編碼的字符串

不幸的是,瀏覽器(FireFox)的行爲與預期的一樣,以正確的方式顯示編碼字符(例如將&gt;轉換爲<)。在這種特殊情況下,我不希望發生這種情況,我希望看到編碼後的字符串。我希望瀏覽器以與Web服務器發送字符串相同的方式顯示字符串。

<pre>標籤不起作用,<code>也沒有成功。有沒有一個我忽略的HTML標籤來實現這一點?還是有另一個我可以使用的技巧?我不想在服務器端以任何方式使用附加編碼操縱字符串,以避免誤導結果。

爲了使問題變得很長 - 如何讓我的瀏覽器按原樣顯示字符串4 &gt; 5並且沒有正確解碼爲4 < 5

回答

1

如果您不希望瀏覽器將文檔視爲HTML,則不要將其作爲HTML提供。

在PHP中,你會怎麼做:

<?php 
    header('Content-Type: text/plain'); 
    print $string; 
?> 

我不知道Java的語法。

<pre>標籤不工作,與<code>要麼

<pre>沒有成功只是意味着空白是顯著。 <code>只是表示「這是一些代碼的HTML表示」。

+0

感謝您的回覆,但這隻有在整個文檔應被視爲文本/純文本時纔有效,但這僅限於文檔的一小部分。文檔的其餘部分使用有效的HTML。我只需要禁用某些字符串或文檔的某些部分的HTML解碼。 – Demento 2011-04-18 22:10:20

+0

如果這與任何人都有關聯,那麼在Java中,您可以使用'<%@ page language =「java」contentType =「text/plain; charset = UTF-8」pageEncoding =「UTF-8」%來設置Content- >'在你的JSP文件的開頭。 – Demento 2011-04-18 22:14:18

+0

沒有(支持)的方式來說「HTML文檔的這個位應該被當作文字而不是HTML」。 – Quentin 2011-04-18 22:21:17

0

在這種情況下,您實際上需要將>表示爲HTML實體。所以,&amp;gt;應該工作我相信。

+0

您的意思是& gt;? – 2011-04-18 22:07:01

+0

是的,這是正確的。我的錯。 – Nick 2011-04-18 22:08:14

+0

是的,這將工作。不幸的是,我需要另一層編碼,可能會篡改我想測試的第一層。如果這是我必須這樣做的唯一方式,但我更喜歡一種解決方案,它將原始編碼的字符串保持原樣。像封閉html標籤或類似的東西。 – Demento 2011-04-18 22:12:17