2009-09-02 62 views
3

例如,將中文文本(GB2312)粘貼到html頁面的文本框(或文本區域)中,並且發佈表單。在服務器端,是否有任何方法可以檢測到這個字符集?如何檢測字符集編碼?

如果將屬於不同字符集的文本粘貼到文本框中,該檢測行爲如何?

回答

0

網頁瀏覽器在發佈數據時應發送包含編碼的內容類型。

我認爲將文本看作「只是文本」(沒有任何特定的編碼)是有幫助的,直到編碼爲需要。因此,瀏覽器不應該關心最初生成文本時使用的編碼(如果有的話)(例如,如果它是從文件複製並粘貼的,則文件的編碼無關緊要)。它決定將它發佈到服務器時使用哪種編碼,顯然要確保它是一種涵蓋所有需要發送的字符的編碼。

+0

(如果瀏覽器發送內容類型)我應該檢查哪個參數來獲取編碼? 檢測在服務器端非常重要,可以將不同類型的所有文本(而不是字符)轉換爲特定的編碼(比如UTF-8)。 – Krishna 2009-09-02 16:32:19

+1

使用Content-Type頭 - 應指定使用的字符編碼(用於文本數據)。但是,您並未將文本*轉換爲特定編碼,而是將其從編碼形式轉換爲字符。 – 2009-09-02 16:45:24

+0

我沒有在標題中找到編碼類型。假設瀏覽器將原始數據發佈到服務器,是否有任何檢測編碼的傻瓜式方法?還是更多的是一個聰明的猜測工作? – Krishna 2009-09-03 18:27:27

2

你需要告訴瀏覽器加入一個接收字符=「UTF-8」(或類似)屬性的形式使用何種編碼。 Apparently this defaults to the character set of the page,但我不會指望這一點。瀏覽器不會告訴你它在提交表單時使用了什麼編碼,所以你需要假設它使用了你告訴它的那個編碼。