2011-05-06 92 views
0

我有一個aspx頁面,它使用Siebel Web服務並根據需要從Siebel獲取漢字字符。這顯示爲aspx文本框中的一系列問號。這不能是來自後端的數據錯誤,因爲其他應用程序從Siebel獲得適當的漢字字符。此外,我從控制面板安裝了東亞語言,並在Internet Explorer 7的語言選項卡下添加了[ja-Jp]語言。此外,我還添加了 globalization requestEncoding =「Shift-JIS」responseEncoding =「Shift-JIS」 到我的web.config中,也嘗試在上面的行中將'Shift-JIS'更改爲'utf-8',但沒有區別。我還用Unicode(帶簽名的utf-8)編碼保存了我的aspx頁面和它的代碼隱藏頁面,但在文本框中顯示的字符中找不到任何更改。asp:textbox顯示問號而不是漢字/日文字符

請幫忙。

回答

0

從服務器端,你所要做的就是確保你從一個帶有正確數據的Web服務中獲得一個.NET字符串,並將字符串賦給文本框。

這顯然是客戶端的問題 - 最可能的原因是您爲您的網頁/文本框(通過CSS或瀏覽器設置)選擇了錯誤的字體。如果字體不支持Unicode字符,那麼它會顯示?。所以請嘗試更改字體。

+0

感謝您回覆Vinay。我在Internet Explorer的字體對話框中選擇了'Arial Unicode MS'作爲網頁字體和'MS Gothic'作爲純文本字體。另外,我的CSS類有Arial Unicode MS。但我仍然在文本框中看到只有問號。 – Jay 2011-05-06 09:36:59

+0

@Jay,如果你爲你的頁面做視圖源,你在文本框中看到的是什麼值。另外,使用utf-8作爲requestEncoding&responeEncoding。 – VinayC 2011-05-09 04:21:12

+0

感謝您的時間Vinay。在頁面的來源,有漢字字符,而不是問號。最後我找到了解決這個問題的辦法(但不是原因)。罪魁禍首是JavaScript方法調用「window.showModalDialog()」,並顯示問號的文本框在這個模式窗口中。一旦我將其更改爲window.open(),漢字字符在文本框中正確顯示。奇怪!現在,它甚至可以在web.config中添加「全球化」標籤。 – Jay 2011-05-09 12:57:26

0

window.open()顯示了作爲一組問號顯示的漢字字符。然而,我碰到另一個嚴重的問題,因爲window.open()是異步的。在window.showModalDialog中,執行是同步的,因此window.ShowModalDialog()之後的任何語句都會等待,直到用戶解除對話窗口。 因此,現在面臨的挑戰更加困難,因爲我必須將同步行爲帶到window.open(),這使事情變得更加複雜。

最後我找到了解決這兩個問題的方法。我使用了Javascript方法escape()。這現在顯示漢字字符而不是問號,更重要的是,這可以與window.showModalDialog()一起使用。

語法:escape()

相關問題