2010-11-04 45 views
0

我們目前正在將我們的webapp從ISO-8859-1轉換爲UTF-8。一切都很好,但要求從其他網站獲取/發佈變量(註冊表單)。基於代碼頁的不同的查詢字符串urlencoding。 ASP classic

一些發佈到我們網站的網站有ISO-8859-1編碼和som有UTF-8。

問題是特殊字符取決於網站字符集的URL編碼有所不同。

例如: O =%F8在ISO 8859 O =%C3%B8在UTF-8

我不能讓F8%權當我有UTF-8字符集。我只得到一個Unicode字符'替換字符'(U + FFFD)。

關於如何解決此問題的任何提示,將不勝感激:)

Torbjørn

回答

0

您可以指定明確使用<form accept-charset="UTF-8">編碼。

如果你不想這樣做,瀏覽器必須猜測你想要的編碼。爲此,它通常需要對錶單所在頁面進行編碼。因此,如果您將HTML文件作爲UTF-8提供,您的表單也會以UTF-8發回。

+0

感謝您的回覆!好的,所以它不可能轉換我們的服務器上的編碼?有很多表單發佈給我們,我沒有訪問它們。 – 2010-11-05 08:56:02

+0

如果您不是首先提供表單的人,它似乎不是。 – Grubsnik 2011-02-10 11:33:43

0

我建議你在轉換前對輸入進行了預分析。本質上,掃描Æ,Ø和Å(大寫和小寫)的iso-8859-1代碼。如果找到任何內容,請對整個請求進行搜索/替換,將iso-char代碼交換爲UTF-8字符編碼。

+0

嗯,你可能想要檢查是否有任何ISO-charcodes映射到UTF-8中可能相關的東西。 – Grubsnik 2010-11-11 11:39:24

+0

是否有任何你知道的類可以完成這種類型的工作,還是需要收集我遇到的每個單個字符? – 2011-02-09 15:09:55

+0

我不知道任何具體的類將爲你做這個。因爲你基本上用你需要的特殊字符覆蓋了UTF-8規範中的任何字符碼。 – Grubsnik 2011-02-10 11:35:29