2010-01-18 34 views
1

99.9%的應用程序中的頁面正在使用UTF-8編碼。Weblogic如何使用Unicode字符集發送頁面

然而,對於客戶端的一些特殊用例,我需要他們的一個使用Unicode(2個字節每個字符)

對於這個問題這個頁面的標題是:

<%@ page language="java" contentType="text/html; charset=unicode"%> 
...<my content>... 

當應用程序在Tomcat和Webspher上運行時,此實現可以正常工作並完成這項工作。然而,當它部署在WebLogic中,我得到的服務器錯誤:不支持 編碼:「統一」:java.io.UnsupportedEncodingException:統一

是否有人知道我怎麼能強迫Weblogic的發送在「統一」的編碼頁?

+0

Guy,你可能會粘貼一個Websphere生成頁面(hexdump)的摘錄來查看實際的編碼嗎? – 2010-01-19 16:16:39

回答

3

UTF-8 Unicode。 「Unicode」不是一個字符編碼,它是一個字符映射標準(一個字符集)。你的問題在別的地方。也許你有GET請求編碼的問題。這經常被忽視。然後,您可能會發現這篇文章對獲取更多背景信息和完整解決方案非常有用,以瞭解如何讓Unicode現象在Java EE Web應用程序中工作:Unicode - How to get the characters right?

祝您好運。

順便說一句,「每個字符2個字節」是UTF-16編碼的大部分(0x0000,直到0xFFFF以2個字節表示,而UTF-8爲每個子範圍使用1,2和3個字節) 。也許你只是想用它來代替?

+0

我已經嘗試將charset-unicode更改爲charset = UTF-16,但它沒有幫助。 當Tomcat或Websphere使用charset = unicode生成一個頁面時,他們使用某種編碼將頁面發送到客戶端,但我無法確定它是什麼(但它解決了我的具體問題),出於某種原因,Weblogic表現出了某些行爲不同。 – GyRo 2010-01-18 13:07:50

+0

我建議閱讀鏈接的文章,以瞭解**發生了什麼,以便更輕鬆地找出根本原因。你可以在任何體面的瀏覽器(例如firefox)中檢查通過'view'使用的編碼。 – BalusC 2010-01-18 13:22:13

+0

好吧,我不能標記你的答案,因爲我的問題實際上並沒有解決,但你給我提供了一些線索 我很感謝你的努力。 – GyRo 2010-01-18 13:57:47

1

Unicode不是字符集,但有字符集允許表示字符在Unicode系統中表示。您已經知道字符集,它根據字符在系統中的位置爲每個字符編碼1,2,3或4個字節。看起來您要使用字符集編碼每個字符2或4個字節的字符集。

與BalusC提供的答案有關的註釋:這裏我使用單詞「charset」作爲「內容類型MIME頭中字符集編碼部分的分母」。嚴格地說,由Unicode提供的通用字符集是一個字符集,但我們沒有嚴格指定帶有字符集名字對象的字符集。

+0

當你說charset時,你可能意思是「編碼」或「字符編碼」。 UTF-8也不是一個字符集(正如你注意的那樣),它使用Unicode字符集。對於「編碼」使用「字符集」來自每次廣泛使用的編碼僅僅是值0-255到某些字符的簡單映射,因此每個編碼都有它自己支持的一組字符。現代編碼(UTF-8,UTF-16,甚至UTF-7)支持所有的Unicode字符,因此稱它們爲「字符集」並不是真的正確。 – 2010-01-18 13:00:18

+0

Joachim是對的,但不幸的是這並沒有被一直使用到處。例如'content-type'頭文件希望它被指定爲'charset',而不是'encoding'等等。 – BalusC 2010-01-18 15:32:44

+0

假設Joachim評論在添加註釋之前發佈:-) – 2010-01-19 07:13:59

相關問題